我在UTF-8的字符串(根据.encoding.name & .valid_encoding?),而且在它的转义Unicode字符(\ u009A)红宝石1.9.2的Unicode - Unicode的转义字符被丢弃
“Hammarskj \ u009Ald”
这应该打印为“Hammarskjšld”,但它只是滴下字形。 EG:
puts "Hammarskj\u009Ald"
p "Hammarskj\u009Ald"
结果的文本:
Hammarskjld
"Hammarskj\u009Ald"
它还(如果我保存在数据库中的数据)时,其保存和丢弃。我搜索了一段时间,但我无法弄清楚如何忽略它(这是我认为我需要做的)。很多信息都是1.8.7,而1.9.2的一些信息并不是我所需要的。
任何人有任何想法如何做我想要的?我似乎有一个有效的UTF-8字符串,我想要做的就是保存在数据库中(完好无损),但它总是丢弃转义的unicode。
\ u009A在Unicode中不是“š”,9A在Windows-1252中是“š”。 Unicode“š”是\ u0161。有人向你说谎,如果他们声称使用Unicode。 – 2012-01-16 06:04:31
http://www.fileformat.info/info/unicode/char/9a/index.htm这是另有说明。 – Paul 2012-01-16 07:08:58
@Paul,fileformat.info网站由于其页面生成方式而导致某些字符的图像有误。在这种情况下,图像显示“š”,但名称显示为“”,分类显示为“其他,控制[Cc]”。因此,它是控制字符,而不是可见字符。数据中还有其他的东西可能是错误的(错误的代码转换?):名字“Hammarskjšld”没有意义,它显然应该是“Hammarskjöld”(U + 00F6作为倒数第三个字母)。 –
2012-01-16 07:43:28