проблема кодировок |
Здравствуйте, гость ( Вход | Регистрация )
проблема кодировок |
eldar85 |
27.9.2010, 12:35
Сообщение
#1
|
программист Группа: Участник Сообщений: 283 Регистрация: 2.1.2010 Из: Москва Пользователь №: 1348 Спасибо сказали: 0 раз(а) Репутация: 0 |
Такая проблемка, хочу чтобы поддерживались две кодировки 1251 и utf-8 в QTextEdite. Проект написан на utf-8 а в QString стоит кодировка 1251 это вызвано нуждами программы, так вот если я вывожу файл который сохранен в utf-8 то кирилица вся конечно же кашей и в начале этот долбаный знак "п»ї" означающий что файл в utf-8 .
Хотелось сделать чтобы прога понимала какой файл в нее вставляют и выводила нормальную кодировку. написал такой код:
но этот знак "п»ї" не видет прога так как проект написан в utf-8. Как же быть? Сообщение отредактировал eldar85 - 27.9.2010, 15:06 |
|
|
Litkevich Yuriy |
27.9.2010, 17:54
Сообщение
#2
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
а в QString стоит кодировка 1251 это как так?этот долбаный знак "п»ї" означающий что файл в utf-8 . затрудняюсь сказать при каких преобразованиях появляются такие символы. Но большинство текстовых редакторов первые два байта - маркер, просто игнорируют.Глянь пример examples\tools\codecs |
|
|
eldar85 |
27.9.2010, 21:16
Сообщение
#3
|
программист Группа: Участник Сообщений: 283 Регистрация: 2.1.2010 Из: Москва Пользователь №: 1348 Спасибо сказали: 0 раз(а) Репутация: 0 |
ну в main.cpp у меня стоит кодировка для QString
такой знак "п»ї" появляется когда файл в utf_8 открываешь как 1251.
а сам проект на utf-8, получается то если я пишу tmp.contains( "п»ї" ) в редакторе этот символ "п»ї" похоже не воспринемается или не видится или черт его знает, в общем в QTextEdit у меня все выводиться в 1251 так как QString в кодировке 1251 - это для моей программы обязательно. мне нужно чтобы вот эта строка tmp.contains( "п»ї" ) когда нужно срабатывала и преобразовывала когда необходимо в нужный формат, а вот не срабатывает хотя там этот знак и есть... кто же навыдумывал столько кодировок))) Сообщение отредактировал eldar85 - 27.9.2010, 21:20 |
|
|
Litkevich Yuriy |
27.9.2010, 21:40
Сообщение
#4
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
ну в main.cpp у меня стоит кодировка для QString setCodecForCStrings перевожу на русский название этого метода:установитьКодекДляСиСтрок ("Си" - язык программирования). У QString кодировка всегда UTF-16. А этот метод устанавливает кодек, когда нужно QBateArray в QString преобразовать |
|
|
eldar85 |
27.9.2010, 21:49
Сообщение
#5
|
программист Группа: Участник Сообщений: 283 Регистрация: 2.1.2010 Из: Москва Пользователь №: 1348 Спасибо сказали: 0 раз(а) Репутация: 0 |
вот блин, а я и внимание не обращал и в правду, хотя всегда срабатывало)))))))))
Сообщение отредактировал eldar85 - 27.9.2010, 21:49 |
|
|
Litkevich Yuriy |
28.9.2010, 10:40
Сообщение
#6
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
eldar85, ты пример посмотрел?
|
|
|
eldar85 |
28.9.2010, 11:56
Сообщение
#7
|
программист Группа: Участник Сообщений: 283 Регистрация: 2.1.2010 Из: Москва Пользователь №: 1348 Спасибо сказали: 0 раз(а) Репутация: 0 |
не могу найти его по этой ссылке examples\tools\codecs
|
|
|
Litkevich Yuriy |
28.9.2010, 16:26
Сообщение
#8
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
в каталоге Qt есть каталог с примерами
|
|
|
Sokoloff |
28.9.2010, 18:12
Сообщение
#9
|
Участник Группа: Участник Сообщений: 237 Регистрация: 1.4.2009 Из: Москва Пользователь №: 654 Спасибо сказали: 50 раз(а) Репутация: 11 |
Вот кусок из моего проекта, он на питоне, но идея думаю будет понятна.
|
|
|
eldar85 |
7.10.2010, 6:21
Сообщение
#10
|
программист Группа: Участник Сообщений: 283 Регистрация: 2.1.2010 Из: Москва Пользователь №: 1348 Спасибо сказали: 0 раз(а) Репутация: 0 |
Большое спасибо, идея понятна)))) приеду с отпуска опробую и отпишусь)
|
|
|
Текстовая версия | Сейчас: 28.11.2024, 21:59 |