Ruby 分解 UTF-8 字符
Ruby decompose UTF-8 chars
我使用
获得了“ü”的UTF-16编码
#!/bin/env ruby
# encoding: UTF-8
puts "ü".unpack('U*')
嗯,只是 returns 252
很好。
我阅读了 ruby String 的在线文档,但我不知道如何分解这个字符。
在 ü
的情况下,我想获取字符 u (117)
和 ¨ (168)
提前致谢,
感谢您的帮助
String#unpack
和Array#pack
正如ForeverZer0在评论中提到的,用于将二进制字符串解码为更结构化的数据(例如数字)和将数据编码为字符串(分别)。如果你想分解unicode,你想要String#unicode_normalize
和NFD形式:
> "ü".unicode_normalize(:nfd).chars
=> ["u", "̈"]
这给你 117 和 776,而不是 168。168 在 ISO-8859-1 中是 ¨
而不是 UTF-8。
我使用
获得了“ü”的UTF-16编码#!/bin/env ruby
# encoding: UTF-8
puts "ü".unpack('U*')
嗯,只是 returns 252
很好。
我阅读了 ruby String 的在线文档,但我不知道如何分解这个字符。
在 ü
的情况下,我想获取字符 u (117)
和 ¨ (168)
提前致谢, 感谢您的帮助
String#unpack
和Array#pack
正如ForeverZer0在评论中提到的,用于将二进制字符串解码为更结构化的数据(例如数字)和将数据编码为字符串(分别)。如果你想分解unicode,你想要String#unicode_normalize
和NFD形式:
> "ü".unicode_normalize(:nfd).chars
=> ["u", "̈"]
这给你 117 和 776,而不是 168。168 在 ISO-8859-1 中是 ¨
而不是 UTF-8。