提问人:Polar Bear 提问时间:5/29/2021 最后编辑:Polar Bear 更新时间:11/6/2021 访问量:222
如何在 Windows 8 中以 utf10 编码和输出读取文件?
How to read a file in utf8 encoding and output in Windows 10?
问:
在 Windows 8 中读取和输出 utf10 编码数据的正确程序是什么?
我尝试在 Windows 8 中读取 utf10 编码文件并将行输出到终端中,但不会重现某些语言的符号。
- 操作系统: Windows 10
- 本机代码页:437
- 切换代码页:65001
在窗口中发出的命令。以下 ruby 代码读取 utf8 编码文件并输出带有 .cmd
chcp 65001
puts
fname = 'hello_world.dat'
File.open(fname,'r:UTF-8') do |f|
puts f.read
end
hello_world.dat内容
Afrikaans: Hello Wêreld!
Albanian: Përshendetje Botë!
Amharic: ሰላም ልዑል!
Arabic: مرحبا بالعالم!
Armenian: Բարեւ աշխարհ!
Basque: Kaixo Mundua!
Belarussian: Прывітанне Сусвет!
Bengali: ওহে বিশ্ব!
Bulgarian: Здравей свят!
Catalan: Hola món!
Chichewa: Moni Dziko Lapansi!
Chinese: 你好世界!
Croatian: Pozdrav svijete!
Czech: Ahoj světe!
Danish: Hej Verden!
Dutch: Hallo Wereld!
English: Hello World!
Estonian: Tere maailm!
Finnish: Hei maailma!
French: Bonjour monde!
Frisian: Hallo wrâld!
Georgian: გამარჯობა მსოფლიო!
German: Hallo Welt!
Greek: Γειά σου Κόσμε!
Hausa: Sannu Duniya!
Hebrew: שלום עולם!
Hindi: नमस्ते दुनिया!
Hungarian: Helló Világ!
Icelandic: Halló heimur!
Igbo: Ndewo Ụwa!
Indonesian: Halo Dunia!
Italian: Ciao mondo!
Japanese: こんにちは世界!
Kazakh: Сәлем Әлем!
Khmer: សួស្តីពិភពលោក!
Kyrgyz: Салам дүйнө!
Lao: ສະບາຍດີຊາວໂລກ!
Latvian: Sveika pasaule!
Lithuanian: Labas pasauli!
Luxemburgish: Moien Welt!
Macedonian: Здраво свету!
Malay: Hai dunia!
Malayalam: ഹലോ വേൾഡ്!
Mongolian: Сайн уу дэлхий!
Myanmar: မင်္ဂလာပါကမ္ဘာလောက!
Nepali: नमस्कार संसार!
Norwegian: Hei Verden!
Pashto: سلام نړی!
Persian: سلام دنیا!
Polish: Witaj świecie!
Portuguese: Olá Mundo!
Punjabi: ਸਤਿ ਸ੍ਰੀ ਅਕਾਲ ਦੁਨਿਆ!
Romanian: Salut Lume!
Russian: Привет мир!
Scots Gaelic: Hàlo a Shaoghail!
Serbian: Здраво Свете!
Sesotho: Lefatše Lumela!
Sinhala: හෙලෝ වර්ල්ඩ්!
Slovenian: Pozdravljen svet!
Spanish: ¡Hola Mundo!
Sundanese: Halo Dunya!
Swahili: Salamu Dunia!
Swedish: Hej världen!
Tajik: Салом Ҷаҳон!
Thai: สวัสดีชาวโลก!
Turkish: Selam Dünya!
Ukrainian: Привіт Світ!
Uzbek: Salom Dunyo!
Vietnamese: Chào thế giới!
Welsh: Helo Byd!
Xhosa: Molo Lizwe!
Yiddish: העלא וועלט!
Yoruba: Mo ki O Ile Aiye!
Zulu: Sawubona Mhlaba!
Steven Penny 建议使用 PowerShell,不要更改代码页。下图表明问题仍然存在。
Windows 终端安装程序(不是 Windows 发行版的一部分)解决了 utf8 输出问题,请参阅随附的屏幕截图。
答:
1赞
Zombo
5/29/2021
#1
问题是,您正在使用一些非常古老的方法和工具。第一:
- 本机代码页:437
- 切换代码页:65001
您无需再弄乱代码页,只需将其保留为默认值即可。另外,从您的图片中,我看到您也在使用控制台主机,它也非常旧。Windows 终端 [1] 自 2019 年以来一直可用,并内置了 UTF-8 支持。使用 Windows 终端,即使不指定 UTF-8,我也可以运行您的脚本:
fname = 'hello_world.dat'
File.open(fname,'r') do |f|
puts f.read
end
我得到了完美的结果:
要使用 Windows 终端,请下载文件 [2],然后安装它。或者,由于它本质上只是一个 Zip 文件,您可以将其重命名为并使用 Windows 将其解压缩,然后运行 .或者,由于您确实在此过程中遇到问题,因此可以使用我刚刚创建的便携式版本
[3] (风险自负)。msixbundle
file.zip
WindowsTerminal.exe
评论
cmd.exe
hello_world.dat
type hello_world.dat