pscp 和 UTF-8 字符

pscp 和 UTF-8 字符

我在 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

相关内容