![]() ![]() |
|
1 | |
Чем сконвертировать в русский язык такие крякозябры?06.02.2011, 16:54. Показов 8113. Ответов 23
Метки нет Все метки)
(
Чем сконвертировать в русский язык такие крякозябры?
OemToChar не подходит. Я мог бы разные способы перебрать, но кроме OemToChar и CharToOem ничего не знаю. Конкретно в данном случае проблема скорее всего в том, что файл изначально был в виндовой кодировке, но выдал его в utf-8 (или перекодировал), но точно не уверен
0
|
|
06.02.2011, 16:54 | |
Ответы с готовыми решениями:
23
Xcode , С++ и русский язык: как вывести в файл русский текст без сбитой кодировки?
Русский язык |
270 / 176 / 46
Регистрация: 12.03.2010
Сообщений: 494
|
|
06.02.2011, 17:37 | 2 |
Дай-ка сам файлик, поиграюсь
0
|
270 / 176 / 46
Регистрация: 12.03.2010
Сообщений: 494
|
|
06.02.2011, 19:40 | 4 |
Собсно даже блокнот распознал текст
![]() ![]()
0
|
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
|
|
06.02.2011, 20:48 | 6 |
MultiByteToWideChar конвертирует из кодировок в Unicode виндовский
это видимо utf-8?
1
|
270 / 176 / 46
Регистрация: 12.03.2010
Сообщений: 494
|
||||||
06.02.2011, 21:47 | 7 | |||||
Собсно
0
|
![]() ![]() |
|||||||||||
06.02.2011, 22:56 [ТС] | 8 | ||||||||||
Нифига не понял.
Добавлено через 19 минут Вроде бы как разобрался. В моём случае надо будет сначала MultiByteToWideChar(CP_UTF8), а потом WideCharToMultiByte(1251) Добавлено через 5 минут Нашёл исходник. Взято отсюда. На тут случай, если ссылку сотрут, хотя бы упомяну, что автор - npak
0
|
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
|
|
06.02.2011, 23:09 | 9 |
Evg, по утверждению Manjak'а там и так хорошо выводилось, но даже если там другая кодировка достаточно перевести в wide символы и использовать функции для работы с широкими символами(utf8_to_unicode), не переводя опять в ascii'шные символы
0
|
![]() ![]() |
||||||
06.02.2011, 23:17 [ТС] | 10 | |||||
Мне нужно, чтобы не у Manjak'а хорошо выводилось, а у меня и у тех, кто будет моей программой пользоваться.
Я толком ничего не понял. Я вообще в этой белиберде традиционно ничего не понимаю. Как обезьяна тупо повторить могу, а как этим делом пользоваться, да ещё и так, чтобы у людей без плясок с бубнами работало - толком не понимаю. У меня, грубо говоря, получается так:
0
|
бжни
2473 / 1684 / 135
Регистрация: 14.05.2009
Сообщений: 7,162
|
||||||
06.02.2011, 23:28 | 11 | |||||
вот это пример работы с широкими символами
wprintf, wscanf, wstring итп все это часть стандарта AnsiString приблуда билдера, судя по гуглу широкосимвольный аналог - WideString а с билдером не работал, но предполагаю, что должно так работать WideString dst = WideString ((utf8_to_unicode (src.c_str())); а правильней так
0
|
270 / 176 / 46
Регистрация: 12.03.2010
Сообщений: 494
|
|
07.02.2011, 00:04 | 12 |
В файле лежит нормальный UTF-16, в конкретном случае достаточно стандартних С++ классов или сишных функций (на UTF-32 не проверял, любителям линухов придется поднапрячься). Ну, а для нормального разбора файла в формате юникод в нем на начале помещается битовая маска - маркировка содержимого так сказать
![]() Добавлено через 14 минут Тут можно почитать. По-хорошему, если есть маска - это юникод, нету - анси. Но может кто-то просто так текст поместил в файл - тогда есть статистические методы (например, функция IsTextUnicode)
0
|
![]() ![]() |
|
07.02.2011, 09:12 [ТС] | 13 |
alex_x_x, мне нужен AnsiString, потому как все борландовские компоненты работают именно с ним, а не "правильные" варианты
alex_x_x, Manjak, в последних ваших постах речь идёт о файле. У меня НЕ стоит задача прочитать что-то из файла. У меня стоит задача сконвертировать буффер в памяти, который скачан из сети. В начале поста #8 я ведь именно для этого привёл пример с "qqq", но вы мне упорно отвечаете на вопрос, который я не задавал и игнорируете вопрос, который я задал. По факту полезным оказалось лишь MultiByteToWideChar, потому как появилось то, за что модно зацепиться и вопрос быстро решился через гугл. Всё, что я говорю - это НЕ попытка обо$рать, а призыв к тому, что неплохо бы понять, чего хочет спрашивающий, потому как даже в очень простых вопросах зачастую вижу, что люди пишут совсем не то, о чём спрашивают Добавлено через 36 минут Хотя я немного промазал разделом. Думал, что создал тему в разделе Borland, а на самом деле в "C/C++". При таком раскладе получается что надо было бы более явно описать, что требуется решение именно для Borland'а
0
|
270 / 176 / 46
Регистрация: 12.03.2010
Сообщений: 494
|
|
07.02.2011, 16:33 | 14 |
Я уже ответил полностью на вопрос. Если целью является любой кусок данных - нет никакой возможности распознать, разве что статистически разбирать данные (у латинских и русских букв младший байт будет 0, но вот это только справедливо для little-endian систем и для UTF-16). В общем, ты задачу себе поставил неправильно или просто неполное описание дал в теме.
Если целевая система - только винда, то это 100% little-endian UTF-16, т.е. читай предыдущий пост про функцию IsTextUnicode, если же целью является нечто утопическое - не забивай себе голову.
0
|
54 / 54 / 23
Регистрация: 02.02.2011
Сообщений: 436
|
||||||
07.02.2011, 16:35 | 15 | |||||
0
|
270 / 176 / 46
Регистрация: 12.03.2010
Сообщений: 494
|
|
07.02.2011, 16:40 | 16 |
0
|
ForEveR
|
07.02.2011, 19:29
#17
|
Не по теме: Manjak, Мало того, на него снизошло еще и неверное просветление)
0
|
0 / 0 / 1
Регистрация: 09.06.2010
Сообщений: 9
|
|
10.02.2011, 12:06 | 18 |
вот здесь давно все разобрали
ну и вот здесь хватит в пустую темы создавать при чем с таким заголовком - просто ищите. все такие мелие темы уже давно разобрали. так и искать нужное проще будет
0
|
![]() ![]() |
|
10.02.2011, 12:15 [ТС] | 19 |
Для начала прочти выданные тобой ссылки и вникни в то, что там написано. А потом вникни в первый пост данной темы. Если всё равно не понятно, то для самых умных специально написал "OemToChar не подходит".
1
|
0 / 0 / 1
Регистрация: 09.06.2010
Сообщений: 9
|
|
10.02.2011, 13:25 | 20 |
а там не только эта инструкция предлагается
0
|
10.02.2011, 13:25 | |
Помогаю со студенческими работами здесь
20
Русский язык
Русский язык Русский язык Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |