【问题标题】:Character replacement batch file字符替换批处理文件
【发布时间】:2017-01-03 02:20:45
【问题描述】:

我正在尝试使用 Windows 命令行执行批处理脚本来转换某些字符,例如:

É to Й
Ö to Ц
Ó to У
Ê to К
Å to Е
Í to Н
à to Г
Ø to Ш
Ù to Щ
Ç to З

没有成功。那是因为我使用的程序不支持 Cyrillic 字体。

我已经有了包含这些词的文件,例如:

ОБОГРЕВ ЗОНЫ  1
ДАВЛЕНИЕ ЦВЕТА 1
...
and so on...

有可能吗?

【问题讨论】:

  • 你使用的是 unicode 吗?或者有来自扩展的 ascii 表?
  • cmd shell 中使 std 输出更具可读性:mode con cp select=855

标签: windows batch-file replace cmd cyrillic


【解决方案1】:

我猜您想转换文件的字符集(别名代码页),以便您可以打开和阅读它。 我假设您使用的是 Windows 计算机。

假设您的文件是 russian.txt,当您使用记事本打开它时,这些字符没有任何意义。 russian.txt 文件的字符编码很可能是 ANSI,它的代码页是 Windows-1251。 关于字符编码的一些话:

  • 在 ANSI 中,一个字符是一个字节长。
    • 不同的语言有不同的代码页:Windows-1251 = 俄语,Windows-1252 = 西方语言(英语、德语、瑞典语...),Windows-1253 = 希腊语...
  • 在 UTF-8 中,英文字符为 1 个字节长,非英文字符为 2 个字节长。
  • 在 Unicode 中,所有字符都是两个字节长。
  • UTF-8 和 Unicode 不需要代码页。

您可以通过在记事本中打开文件并单击文件、另存为来检查编码。在保存按钮旁边的右下角,您可以看到编码。

通过谷歌搜索,我找到了一个可以在线进行字符编码转换的网站。没测试过,地址如下:

我制作了一个脚本(= 一个小程序),它将字符编码从任何 ANSI 和代码页组合更改为 UTF-8 或 Unicode,反之亦然。

假设您有一台英文 Windows 计算机,并且想要将 russian.txt (ANSI / Windows-1251) 转换为 UTF-8。 方法如下:

  • 打开此网页并将其中的脚本复制到剪贴板:
  • russian.txt 所在的同一文件夹中创建一个名为 ConvertCharset.vbs 的新文件,例如 C:\Temp。
  • 在记事本中打开 ConvertCharset.vbs(右键单击+编辑)并粘贴。
  • 打开 CMD(Windows 按钮+R、cmd、Enter)。
  • 在 CMD 窗口类型中(在行的每一端按 Enter 键):

cd C:\Temp\ cscript ConvertCharset.vbs /InputCharset:Windows-1251 /OutputCharset:utf-8 /InputFile:russian.txt /OutputFile:russian_utf-8.txt

现在您可以在记事本中打开 russian_utf-8.txt,您会看到俄语字符正常。

更多信息:

【讨论】:

  • 是的,我很确定我的解决方案适合您,因为我检查了您示例中的一些字符:Windows-1252É 的十进制值(西方Languages) 是 201,Windows-1251(俄语)中的相同十进制值对应于 Й。如果你觉得我的回答不错,就投一票吧,如果不是,问我一个问题,我会尽力回答。
猜你喜欢
  • 1970-01-01
  • 2011-02-15
  • 1970-01-01
  • 1970-01-01
  • 2014-05-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多