Возникла необходимость парсить некоторые данные скриптом (с кодировкой windows-1251), затем конвертировать в utf8 и добавлять в базу. Споткнулся при добавлении данных, начинающихся с большой русской буквы "Р", вместо них добавляется пустая строка. С остальными данным проблем нет.
PHP 5.2.5, MySQL 5.0.45
Код для конвертирования из windows-1251 в utf8 приведен ниже:
function win2utf($string) { $ttbl = array("А" => "Рђ", "Б" => "Р‘", "В" => "Р’", "Г" => "Р“", "Д" => "Р”", "Е" => "Р•", "Ё" => "РЃ", "Ж" => "Р–", "З" => "Р—", "И" => "Р˜", "Й" => "Р™", "К" => "Рљ", "Л" => "Р›", "М" => "Рњ", "Н" => "Рќ", "О" => "Рћ", "П" => "Рџ", "Р" => "Р ", "С" => "РЎ", "Т" => "Рў", "У" => "РЈ", "Ф" => "Р¤", "Х" => "РҐ", "Ц" => "Р¦", "Ч" => "Р§", "Ш" => "РЁ", "Щ" => "Р©", "Ъ" => "РЄ", "Ы" => "Р«", "Ь" => "Р¬", "Э" => "Р", "Ю" => "Р®", "Я" => "РЇ", "Ї" => "Р‡", "І" => "Р†", "Є" => "Р„", "Ў" => "РЋ", "а" => "Р°", "б" => "Р±", "в" => "РІ", "г" => "Рі", "д" => "Рґ", "е" => "Рµ", "ё" => "С‘", "ж" => "Р¶", "з" => "Р·", "и" => "Рё", "й" => "Р№", "к" => "Рє", "л" => "Р»", "м" => "Рј", "н" => "РЅ", "о" => "Рѕ", "п" => "Рї", "р" => "СЂ", "с" => "СЃ", "т" => "С‚", "у" => "Сѓ", "ф" => "С„", "х" => "С…", "ц" => "С†", "ч" => "С‡", "ш" => "С?", "щ" => "С‰", "ъ" => "СЉ", "ы" => "С‹", "ь" => "СЊ", "э" => "СЌ", "ю" => "СЋ", "я" => "СЏ", "і" => "С–", "ї" => "С—", "є" => "С”", "ў" => "Сћ"); return strtr($string, $ttbl); }
Как с этим бороться? Где закралась ошибка?