我想将“HELLO”转换为“HELLO”,删除所有导致问题的特殊字符插入到数据库中。它们似乎不属于UTF8。如何处理Ruby中的“”字符
我想弄清楚Iconv,但我那种坚持在这里:
str = "A string with " to "A string with "
some_format = "I have no clue what format this is"
Iconv.conv(some_format, 'UTF-8//IGNORE', str)
这样做:
Iconv.conv('UTF-16', 'UTF-8//IGNORE', str)
... ...回报
\376\377\000H\000E\000L\000L\000O?G?`?`?`?`?`?`?`?`?`?`?`?`?`?`?`?`?`?`?`?`?`?`?`?`?`?`?????\342
我不想转换为UTF8以外的东西,因为我必须处理阿拉伯字符,中文,日文,韩文......
任何帮助/指针,将不胜感激。我使用的是Ruby 1.8.7,但我很快就会迁移到1.9.3。一种适用于这两种情况的解决方案是最好的,但只有1.9.3的解决方案也不错。
这些“字符”来自哪里?如果它们“不是utf-8的一部分”(我甚至不确定它是否有意义),当它们得到它们时它们是什么编码? – geoffspear 2012-03-23 10:24:32
@Wooble:它们来自用户输入。我不确定他们应该是什么。由于UTF-16是有意义的,所以它可以用于http://en.wikipedia.org/wiki/UTF-16 – marcgg 2012-03-23 10:26:37
,但UTF-8和UTF-16只是unicode字符集的编码。如果一个字形在unicode中存在,它可以用任何一种编码表示。我猜你真正拥有的不是字符,而是一些未知编码中的字节。你必须确保在从用户那里得到输入时,你知道他们正在发送什么编码。 – geoffspear 2012-03-23 10:34:08