![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
![]() |
Zizilk |
![]()
Сообщение
#1
|
Студент ![]() Группа: Участник Сообщений: 33 Регистрация: 26.7.2010 Пользователь №: 1902 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Двигаюсь по своим задачам и столкнулся с проблемой.
Появилась необходимость получить из бд русские символы и отослать их в php по сокету. Казалось бы всё хорошо и отлично получает, НО вместо вожделенного "Прайм" в php доходит "??N??°????". Я слышал что бывают запары с кодировкой, но надеялся что инфу не будет перекодировать QT полученную из бд. Как с этим бороться? |
|
|
Litkevich Yuriy |
![]()
Сообщение
#2
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
Zizilk |
![]()
Сообщение
#3
|
Студент ![]() Группа: Участник Сообщений: 33 Регистрация: 26.7.2010 Пользователь №: 1902 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
У меня консольное приложение. Вывод в консоль такой-же некорректный, только вместо вопросиков -квадратики
|
|
|
DIMEDROLL |
![]()
Сообщение
#4
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 165 Регистрация: 28.9.2008 Из: Киев Пользователь №: 304 Спасибо сказали: 23 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
Zizilk |
![]()
Сообщение
#5
|
Студент ![]() Группа: Участник Сообщений: 33 Регистрация: 26.7.2010 Пользователь №: 1902 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
баз в UTF8 а как определить в какой её получаю?
|
|
|
DIMEDROLL |
![]()
Сообщение
#6
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 165 Регистрация: 28.9.2008 Из: Киев Пользователь №: 304 Спасибо сказали: 23 раз(а) Репутация: ![]() ![]() ![]() |
для этого нужно знать КАК ты ее получаешь
|
|
|
Litkevich Yuriy |
![]()
Сообщение
#7
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
Вывод в консоль такой-же некорректный, только вместо вопросиков -квадратики в консоли своя собственная кодировка. поэтому выводить нужно так:
|
|
|
Zizilk |
![]()
Сообщение
#8
|
Студент ![]() Группа: Участник Сообщений: 33 Регистрация: 26.7.2010 Пользователь №: 1902 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Вывод в консоль такой-же некорректный, только вместо вопросиков -квадратики в консоли своя собственная кодировка. поэтому выводить нужно так:
Ну мне гораздо важнее чтобы всё нормально выглядело в php на саму консоль мона сказать плевать(в неё выводил ток для дебага) а получаю так
Сообщение отредактировал Zizilk - 21.8.2010, 10:57 |
|
|
DIMEDROLL |
![]()
Сообщение
#9
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 165 Регистрация: 28.9.2008 Из: Киев Пользователь №: 304 Спасибо сказали: 23 раз(а) Репутация: ![]() ![]() ![]() |
для начала проверь тип QVariant:
и ты не ответил, какую кодировку хочет пхп? Сообщение отредактировал DIMEDROLL - 21.8.2010, 11:21 |
|
|
Litkevich Yuriy |
![]()
Сообщение
#10
|
![]() разработчик РЭА ![]() ![]() ![]() ![]() ![]() ![]() ![]() Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: ![]() ![]() ![]() |
|
|
|
Zizilk |
![]()
Сообщение
#11
|
Студент ![]() Группа: Участник Сообщений: 33 Регистрация: 26.7.2010 Пользователь №: 1902 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
для начала проверь тип QVariant:
и ты не ответил, какую кодировку хочет пхп? PHP я пробовал разную кодировку, как менял в сорцах, так и в браузере, результат почти всегда один ток вместо нака градуса ромб с вопросом получается. Тогда ща поколдую, вnx и с выводом в консоль Значит попробовал сделать ту вилку которую ты сказал. Пошёл по первой ветви, где у тя написанно "будем раскодировать." Вывесит в консоль как говорил Litkevich Yuriy не получилось, тк я не нашёл какая кодировка в консоли |
|
|
DIMEDROLL |
![]()
Сообщение
#12
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 165 Регистрация: 28.9.2008 Из: Киев Пользователь №: 304 Спасибо сказали: 23 раз(а) Репутация: ![]() ![]() ![]() |
значит QVariant хранит QByteArray, там где // тут будем раскодировать напиши:
QByteArray bytes = v.toByteArray(); QString result = QString::fromUtf8(bytes.constData(), bytes.size()); теперь в result у тебя валидная строка и ее можно вывести в консоль или куда тебе угодно см.: QString::toAscii () QString::toLocal8Bit () У тебя какая ОСь и язык ОСи(локаль)? Какая кодировка консоли? |
|
|
Zizilk |
![]()
Сообщение
#13
|
Студент ![]() Группа: Участник Сообщений: 33 Регистрация: 26.7.2010 Пользователь №: 1902 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Ось win 7 starter но прога планируется будет работать под убунтой.
Язык оси вроде русский, с кодировкой консоли разобраться не могу), только знаю, что её не трогал) Супер) помогло) |
|
|
DIMEDROLL |
![]()
Сообщение
#14
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 165 Регистрация: 28.9.2008 Из: Киев Пользователь №: 304 Спасибо сказали: 23 раз(а) Репутация: ![]() ![]() ![]() |
а как ты в пхп передаешь? он ведь тоже принимает какую то свою кодировку, которая где то в конфиге прописывается...
|
|
|
Zizilk |
![]()
Сообщение
#15
|
Студент ![]() Группа: Участник Сообщений: 33 Регистрация: 26.7.2010 Пользователь №: 1902 Спасибо сказали: 0 раз(а) Репутация: ![]() ![]() ![]() |
Через сокеты, передаю) Но факт в том, что сейчас у меня заработало)
На клиентской стороне стоит такой кусок кода, который принимает глыбу данных(в виде строки) от сервера, в которую входит и та самая злополучная строка. После чего она распиливается. В php единственный раз когда пришлось лезть в конфиг когда разблочивал сокеты. До этого на php работал с базами данных mysql(в том числе и с той в которой сижу конкретно сейчас) и проблем никогда не было Но факт в том, что сейчас у меня заработало) |
|
|
DIMEDROLL |
![]()
Сообщение
#16
|
![]() Участник ![]() ![]() Группа: Участник Сообщений: 165 Регистрация: 28.9.2008 Из: Киев Пользователь №: 304 Спасибо сказали: 23 раз(а) Репутация: ![]() ![]() ![]() |
сейчас все работает потому что кодировка ОСи и ПХП совпадают, на убунте могут быть баги, так же как и на какой то Французкой винде... но ладно, не буду больше тебя доставать вопросами)
вот только посоветую почитать хорошую статью про все эти кодировки и юникод статью, кстати, было бы неплохо перевести на русский(если еще не перевели) |
|
|
![]() ![]() ![]() |
![]() |
|
Текстовая версия | Сейчас: 22.6.2025, 22:35 |