Wir haben verschiedene Arten von Bindestrichen (in einigen Texten) in der Datenbank gespeichert. Bevor ich sie mit einem vom Benutzer eingegebenen Text vergleiche, muss ich jede Art von Bindestrichen zu einem einfachen Bindestrich/Minus (ascii 45) normalisieren.
Die möglichen Bindestriche, die wir umwandeln müssen, sind:
Minus() U+2212 − or − or −
Hyphen-minus(-) U+002D -
Hyphen(-) U+2010
Soft Hyphen U+00AD ­
Non-breaking hyphen U+2011 ‑
Figure dash() U+2012 (8210) ‒ or ‒
En dash(–) U+2013 (8211) –, – or –
Em dash(—) U+2014 (8212) —, — or —
Horizontal bar() U+2015 (8213) ― or ―
Diese müssen alle mit gsub in Bindestrich-minus(-) umgewandelt werden. Ich habe verwendet CharDet gem, um den Zeichenkodierungstyp der abgerufenen Zeichenfolge zu erkennen. Es wird angezeigt Fenster-1252 . Ich habe versucht Iconv um die Kodierung in ascii zu konvertieren. Aber es wird eine Ausnahme geworfen Iconv::IllegalSequence .
ruby -v => ruby 1.8.7 (2009-06-12 patchlevel 174) [i686-darwin9.8.0]
rails -v => Rails 2.3.5
mysql-Kodierung => 'latin1'
Haben Sie eine Idee, wie man das erreichen kann?