所以我有一个 ruby 脚本,它解析HTML页面并将提取的字符串保存到DB中...... 但我得到了令人厌烦的字符(通常是问号),而不是纯文本......
例如:“某些文字”而不是“某些文字”
我已经尝试过HTML实体和CGI :: unescape ......但无济于事...... 做了一些谷歌搜索设置$ KCODE ='u'&要求'jcode' 仍然没有工作......
任何建议/指针都会很棒
由于
PS:使用mysql 5.1
答案 0 :(得分:4)
您的脚本在数据库中存储引号(而不是ASCII引号)的Unicode转义序列。
这实际上很好 - 它表明数据库本身工作正常,但为了获得最佳结果,您应该确保将表设置为使用'utf8_collation_ci',以便字符串排序正常工作。
输出显示为的事实只是意味着您的终端(和/或网页)输出编码不正确。
如果是终端输出,请确保将$ENV{'LANG'}
设置为适当的UTF8编码(例如en.UTF-8
),并确保终端仿真器本身的设置方式相同。
如果是HTML输出,请确保页面编码也设置为UTF-8
,即:
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
答案 1 :(得分:2)
您存储数据的数据库是否能够处理Unicode?这些症状似乎暗示它不是。有关MySQL下的Unicode支持,请参阅this link。
有问题的引号似乎不是标准的ASCII引号,而是Unicode ones。
Ruby有一个iconv
实现,可以在编码类型之间进行转换。有关详细信息,请参阅here。