Ruby 1.9.2 Unicode - 被删除的Unicode转义字符

时间:2012-01-16 05:32:40

标签: ruby unicode utf-8

我有一个UTF-8的字符串(根据.encoding.name& .valid_encoding?)并且其中有一个转义的unicode字符(\ u009A)

“·哈马舍尔德\ u009Ald”

这应该打印成“Hammarskjšld”,但它只是删除了字形。 EG:

puts "Hammarskj\u009Ald"
p "Hammarskj\u009Ald"

案文结果:

Hammarskjld
"Hammarskj\u009Ald"

它(如果我保存数据库中的数据)也会在保存时丢弃它。我已经搜索了一段时间,但我无法弄清楚如何解开它(这是我认为我需要做的事情)。很多信息都是1.8.7,而1.9.2的一些东西并不是我需要的。

任何人都知道如何做我想做的事情?我似乎有一个有效的UTF-8字符串,我想要做的就是保存在数据库中(完整),但它总是丢弃转义的unicode。

1 个答案:

答案 0 :(得分:0)

你确定它已被删除,而不仅仅是没有显示?也许这只是你的字体在该代码点中具有不显示的零宽度字符的问题。

当您将其从数据库中取出并p'ed或inspect时,如果您看到转义的字符,则表示它在那里,而不是丢弃。这是你打印出来的问题。