Я столкнулся с попыткой конвертировать базу данных, которая закодирована в UTF8 из того, что она выглядит, в кодировку Windows 1251 (не спрашивайте, но мне нужно это сделать). Все русские закодированные персонажи в db отображаются как ì ì ì ÐÐÐÐÐ. Когда я вытаскиваю их из db в свое приложение C#, в строки, я все еще вижу ° ì ì ²Ð³Ð'Ð. Независимо от того, что я пытаюсь сделать, чтобы интерпретировать эту строку как кодированную строку UTF8, она интерпретируется как строка с одним байтом latin1, и я не вижу, чтобы мой текст отображался как русский. То, что мне в основном нужно сделать, это преобразовать эту кодировку latin1 look-utf8 в Unicode, чтобы я мог ее позже преобразовать в 1251, но я не смог сделать это успешно. У кого-нибудь есть идеи?Конвертировать латинский 1 кодированный UTF8 в Unicode
ответ
Encoding.UTF8.GetString(Encoding.GetEncoding("iso-8859-1").GetBytes(s))
Теперь у вас есть нормальная строка Unicode, содержащая кириллицу.
Обратите внимание: возможно, что ваша строка с латинскими буквами «1-го-1» может быть «неправильной кодировкой» кодировки Windows 1252 »; Я не могу сказать из данного примера, поскольку он не использует ни один из символов, которые отличаются между двумя кодировками. Если это так, используйте вместо этого GetEncoding(1252)
.
Также предполагается, что это повреждение содержимого базы данных. Если база данных предположила, что хранит строки UTF-8, но вы вытаскиваете их, как если бы они были латинскими-1 (или кодовая страница 1252 из-за того, что это системная кодовая страница), тогда вам действительно нужно перенастроить уровень доступа к данным для установки правильной кодировки. Если вы используете SQL Server, лучше начать использовать NVARCHAR.
Я использую sql-сервер, и все столбцы nvarchar. Данные были импортированы с дампом mysql из db, который был latin1, а не utf8. Таким образом, все строки unicode кодируются только латинскими. В любом случае, я понял, и это очень похоже на то, что вы предложили. вот что я сделал, чтобы преобразовать utf8 с кодировкой latin1 в 1251.
//re interpret latin1 in proper utf8 encoding
str = Encoding.UTF8.GetString(Encoding.GetEncoding("iso-8859-1").GetBytes(str));
//convert from utf8 to 1251
str = Encoding.GetEncoding(1251).GetString(Encoding.Convert(Encoding.UTF8, Encoding.GetEncoding(1251), Encoding.UTF8.GetBytes(str)));
Я не уверен, что точка второй линии. Кодировать как UTF-8, перекодировать в cp1251 (почему не только GetBytes в кодировке 1251 в первую очередь?), То получите строку Unicode из этих байтов? Все это сделает, это отфильтровать любые символы, отсутствующие в 1251, из вашей строки Unicode. int: http://msdn.microsoft.com/en-us/library/wzsz3bk3.aspx – bobince
- 1. Как конвертировать UTF8 в Unicode
- 2. конвертировать unicode ucs4 в utf8
- 3. Как Java конвертировать латинский в UTF-8?
- 4. Unicode в UTF8 Диалог
- 5. Транслейтинг Unicode в латинский в Teradata
- 6. как конвертировать из unicode в utf8 в visual C++?
- 7. C++ конвертировать ASII escaped строку unicode в строку utf8
- 8. UTF8 кодированный контент XHTML в JSP
- 9. PHP конвертировать латинский номер в арабский
- 10. Преобразование из Unicode в UTF8
- 11. Unicode в UTF8 в Swift
- 12. WebClient Unicode - Какой UTF8?
- 13. jQuery конвертировать латинский номер через персидский номер
- 14. Преобразовать Json Unicode в utf8
- 15. конвертировать смайлики в unicode
- 16. Есть ли способ конвертировать из UTF8 в iso-8859-1?
- 17. Преобразование ISO-8859-1 в UTF8
- 18. конвертировать unicode в char
- 19. Laravel 5.0 utf8 конвертировать?
- 20. конвертировать KOI8-R в utf8
- 21. конвертировать charset X в unicode в Java
- 22. Как конвертировать HTML код Unicode в Real Unicode Character
- 23. Кодировка символов: веб-браузеры, латинский-1 и знак €
- 24. Конвертировать в UNICODE в C#
- 25. Преобразование специальных символов в ISO латинский-1 коды с php?
- 26. Как конвертировать строку ввода пользователя в латинский свиньи?
- 27. конвертировать массив Unicode в Numpy
- 28. как конвертировать unicode в nstring?
- 29. как конвертировать KSC5601 в unicode
- 30. Как конвертировать unicode в ASCII?
Привет. Возможно, если вы покажете нам извлечение кода, который вы используете для извлечения строк из базы данных, это может помочь. И что это за база данных? MS SQL? – CraftyFella
Этот вопрос некогерентен. Что же такое «кодированный UTF 8»? –