Von*_*onC 7 windows utf-8 character-encoding go
我有一个exe输入打印utf-8编码的字符串,其中包含特殊字符.
由于该exe用于从控制台窗口使用,因此其输出被破坏,因为Windows使用ibm850编码(aka code page 850).
你将如何确保exe为控制台窗口打印正确编码的字符串,例如打印:
éèïöîôùòèìë
Run Code Online (Sandbox Code Playgroud)
而不是(没有任何翻译到正确的字符集)
?®?¿?»?Â?«???????¿?¼?½
Run Code Online (Sandbox Code Playgroud)
自 2016 年以来,您现在(2017 年)可以考虑golang.org/x/text,它附带一个编码字符映射,包括 ISO-8859 系列以及 Windows 1252 字符集。
r := charmap.ISO8859_1.NewDecoder().Reader(f)
io.Copy(out, r)
Run Code Online (Sandbox Code Playgroud)
my_isotext.txt这是打开 ISO-8859-1 源文本 ( )、创建目标文件 ( my_utf.txt) 并将第一个文件复制到第二个文件的示例摘录。但为了从 ISO-8859-1 解码为 UTF-8,我们用解码器
包装原始文件读取器 ( )。f
我刚刚测试过(用于说明的伪代码):
r := charmap.ISO8859_1.NewDecoder().Reader(f)
io.Copy(out, r)
Run Code Online (Sandbox Code Playgroud)
结果是在 Windows CMD 中可读的字符串。请参阅2018 年 11 月的 reddit 帖子
了解更多内容。
| 归档时间: |
|
| 查看次数: |
1602 次 |
| 最近记录: |