注意:我对Ruby一无所知,但是您遇到的问题与所使用的编程语言无关。
你不需要改变信仰
Hyphen-minus(-) U+002D -
到
simple hyphen/minus (ascii 45)
你认为数据库编码是
latin1
. 声明“我的数据是用ISO-8859-1编码的,又名拉丁语1”,上面写着“支票在邮件里”和“当然我早上还会爱你”。它告诉你的是,它是一个单字节每字符编码。
chardet
windows-1252
又称作
cp1252
--然而,这可能是偶然的
查德特
有时,当它用尽了其他的可能性时,它似乎会将此报告为违约。
(a) 无法将这些Unicode字符解码为
拉丁语1
或
或
ascii
:
Minus(â) U+2212 − or − or −
Hyphen(-) U+2010
Non-breaking hyphen U+2011 ‑
Figure dash(â) U+2012 (8210) ‒ or ‒
Horizontal bar(â) U+2015 (8213) ― or ―
是什么让你觉得它们可能出现在输入或数据库中?
(b) 这些Unicode字符可以解码成
cp1252型
但不是
拉丁语1
:
En dash(â) U+2013 (8211) –, – or –
Em dash(â) U+2014 (8212) —, — or —
这些(很可能是EN破折号)是您真正需要转换为ascii连字符/破折号的内容。那根绳子里是什么
查德特
视窗-1252
?
cp1252型
和
拉丁语1
:
Soft Hyphen U+00AD ­
iconv
或任何其他方法)
ascii码
?
“选择。你为什么要这么做?