我在 Windows 上使用 pscp 复制包含 UTF-8 字符的文件时遇到问题。我使用命令行并执行以下命令:
chcp 65001
pscp -scp -p -pw {pass} -batch "user@remote_host:/Справочник/file.txt" "E:\Справочник\file.txt"
scp: E:/??????????/file.txt: Cannot create file
如图所示,我收到scp: E:/??????????/file.txt: Cannot create file
错误。如何传输路径中包含 UTF-8 字符的文件?
答案1
应用程序注册表设置UTF-8字体(例如cmd
:)
使用路径pscp
方法一、powershell:
应用程序路径,更改\
为_
:
AppUTF8Font.ps1:
$app='.\%SystemRoot%_system32_cmd.exe'
SL HKCU:\Console;NI $app;SL $app
New-ItemProperty . FaceName -t STRING -va "Lucida Console"
New-ItemProperty . FontFamily -t DWORD -va 0x00000036
需要允许本地 powershell 脚本:
powershell -command "Set-ExecutionPolicy RemoteSigned"
然后运行:
powershell .\AppUTF8Font.ps1
方法 2,reg 文件:
或者使用 reg-file:
REGEDIT4
[HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe]
"FaceName"="Lucida Console"
"FontFamily"=dword:00000036
命令行:
REG IMPORT Cmd_UTF8.reg
删除设置注册表文件:
REGEDIT4
[-HKEY_CURRENT_USER\Console\%SystemRoot%_system32_cmd.exe]
命令行:
REG IMPORT Cmd_UTF8_Delete.reg