How can I convert Cyrillic stored as LATIN1 ( sql ) to true UTF8 Cyrillic with iconv?
I have a SQL dump file consisting of incorrectly stored Cyrillic Russian ( WINDOWS-1251 ) text, example Èðàíñêèå
which should properly be displayed as Иранские
.
In the past I have successfully converted the sql file but memory fails in what I did and in what order.
Logically it would make s开发者_如何学Cense that since it's stored in LATIN1 I would convert from LATIN1 to WINDOWS-1251 and then from WINDOWS-1251 to UTF-8//TRANSLIT or something like that.
So far I've tried:
1.
iconv -f WINDOWS-1251 -t UTF-8//TRANSLIT -o new.sql snippet.sql
Output:
Èðà ГГ±ГЄГЁГҐ
( Not what I want )
2.
iconv -f LATIN1 -t UTF-8//TRANSLIT -o new.sql snippet.sql
Output:
Ã<88>ðà Ãñêèå
( Not what I want either )
Notes
It's possible that I might have converted once and then twice to get my desired result, but I'm pretty sure that on the last step I converted from
WINDOWS-1251
toUTF-8//TRANSLIT
as that was written down in my notes.One other note is that I'm viewing
Èðàíñêèå
in the SQL file when the file encoding is utf8 ( native in vim ). If I doset enc=latin1
in vim then I see~Hð| íñêèå
as if that doesn't make it more confusing.
iconv -f utf-8 -t latin1 < in.sql | iconv -f cp1251 -t utf-8 > out.sql
精彩评论