标签: ruby string encoding diacritics
我有一个字符串,其中非ascii字符编码为“\\'fc”(不带引号),其中fc是十六进制252,对应于德语ü明朗片。
我设法找到所有出现并可以替换它们。但我无法将fc转换为ü。
"fc".hex.chr
给了我另一个代表......但如果我做了
puts "fc".hex.chr
我一无所获......
提前致谢
PS:我正在研究ruby 1.9并且已经
# coding: utf-8
位于文件顶部。
答案 0 :(得分:2)
fc不是该字符的正确UTF-8代码点;这是iso-8859-1或windows-1252。 ü的UTF-8编码是双字节序列c3bc。此外,FC不是有效的UTF-8序列。
由于在Ruby 1.9中假设使用UTF-8,您应该能够使用以下内容获取文字u-ummut:"\xc3\xbc"
"\xc3\xbc"
答案 1 :(得分:1)
你试过吗
puts "fc".hex.chr(Encoding::UTF_8)
Ruby docs:
更新:
Jason True是对的。 fc是无效的UTF-8。我不知道为什么我的例子有效!
fc