Tag: utf 16

从Ruby 1.8.7到系统调用iconv将文件从utf-16转换为utf-8

这是我得到的: path_js = ‘path/to/a/js/file.js’ path_new_js = ‘path/where/the/converted/file/should/go.js’ puts(‘iconv -f utf-16le -t utf-8 ‘ + path_js + ‘ > ‘ + path_new_js) system(‘iconv -f utf-16le -t utf-8 ‘ + path_js + ‘ > ‘ + path_new_js) puts语句的输出是: iconv -f utf-16le -t utf-8 path/to/1-1-2_E1_MC105.js > compiled/path/to/1-1-2_E1_MC105.js 如果我在终端中复制粘贴完全相同的行,则转换会成功进行,但是当它在我的ruby脚本中运行时,新文件的创建编码与原始文件相同(在本例中为utf-16)。 关于什么是缺失/错误的任何想法? 干杯! 更新:我使用的是Mac OS X Snow Leopard,我使用ruby 1.8.7(系统默认)和1.9.2(使用RVM安装)尝试了相同的脚本。 我也尝试了以下内容: f […]

Ruby:如何将文件保存为UTF-16 Little Endian

我想将®保存到带有UTF-16 Little Endian的txt文件中,我在某些方面进行了测试 1.下面的编码是UTF-8 $RegisterMark=[174].pack(‘U*’) file = File.new(“C:/Output.txt”,”w”) file.puts $RegisterMark file.close 2.下面的编码是UTF-16 Big Endian require ‘iconv’ $RegisterMark=[174].pack(‘U*’) $utf16RegisterMark =Iconv.conv(‘UTF-16’, ‘UTF-8’, $RegisterMark ) file = File.new(“C:/Output.txt”,”w”) file.puts $utf16RegisterMark file.close 指南Iconv.conv不支持UTF-16 LE类型。 如何用UTF16 LE保存output.txt?

添加反斜杠以修复ruby字符串中的字符编码

我确信这很容易,但我会被所有这些反斜杠打结。 我有一些数据,我正在网站上(礼貌地)。 偶尔会有一句话看起来像这样: u00a362 000? you must be joking 当然应该是’£2 000? 你一定是在开玩笑’。 irb的一个简短测试破译了它。 ruby-1.9.2-p180 :001 > string = “u00a3” => “u00a3” ruby-1.9.2-p180 :002 > string = “\u00a3” => “£” 当然:添加一个反斜杠,它将被解码。 我在这个问题的帮助下创建了以下内容: puts str.gsub(‘u00’, ‘\\u00’) 这导致了\u00a3输出。 这一切都很好,但我希望它在字符串本身是£。 只是说它是不够的。 做gsub(‘u00a3’, ‘£’)并不好gsub(‘u00a3’, ‘£’)因为毫无疑问我会缺少其他角色。 谢谢你的帮助。