【发布时间】:2014-04-17 13:09:33
【问题描述】:
Ruby 1.9.3
irb(main):036:0* "\x03".force_encoding("UTF-16")
=> "\x03"
irb(main):040:0* "\x03".force_encoding("UTF-8")
=> "\u0003"
为什么 "\x03".force_encoding("UTF-8") 是 \u0003 而 "\x03".force_encoding("UTF-16") 以 "\x03" 结尾,我认为应该是另一个绕路?
【问题讨论】:
-
请不要对我投反对票,如果我做出错误的假设,请赐教。谢谢。
-
"\x03".force_encoding('binary').encode('utf-16')可能更有启发性。force_encoding允许您生成无效编码的文本,例如\x03伪装成 UTF-16 或"\xce".force_encoding('utf-8')伪装成 UTF-8。我的 UTF-16 知识相当稀少,所以只是评论。 -
你能解释一下为什么我不能将 "\x81" 与 [993].pack("n") 连接,但我可以在 [993] 时使用 "\x81" 和 "\x03\xE1" ].pack("n") 是 "\x03\xE1"。
标签: ruby-on-rails ruby encoding utf-8 utf-16