Ruby 如何处理诸如“quot&引用;红宝石色
我想转换成“你好”" “HELLO”,删除插入数据库时导致问题的所有特殊字符。它们似乎不是UTF8的一部分 我想弄清楚,但我有点被困在这里:Ruby 如何处理诸如“quot&引用;红宝石色,ruby,encoding,utf-8,character-encoding,iconv,Ruby,Encoding,Utf 8,Character Encoding,Iconv,我想转换成“你好”" “HELLO”,删除插入数据库时导致问题的所有特殊字符。它们似乎不是UTF8的一部分 我想弄清楚,但我有点被困在这里: 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.con
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的一部分。 可能的问题:
这些“角色”来自哪里?如果它们“不是utf-8的一部分”(我甚至不确定这是否有意义),当你得到它们时,它们是什么编码?@Wooble:它们来自用户输入。我不确定它们应该是什么。因为有一个UTF-16,这是有意义的,但UTF-8和UTF-16只是unicode字符集的编码。如果unicode中存在一个字形,它可以用任何一种编码来表示。我猜你真正拥有的是n不是字符,而是未知编码中的字节。您必须确保在从用户获取输入时,您知道他们发送的是什么编码。@Wooble哦,好的,我明白您的意思。但是我怎么知道编码呢?我实际上是在调用一个返回此信息的API,所以我无法控制数据的输入方式。
# -*- coding: utf-8 -*-
a = "⚒og"
p a => ⚒og
p a.encode('iso-8859-1', :undef => :replace, :replace => '') => og