Russian Qt Forum
Ноябрь 23, 2024, 06:02 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1]   Вниз
  Печать  
Автор Тема: Кодировка текста, русский язык  (Прочитано 12970 раз)
zosia
Гость
« : Март 05, 2009, 16:45 »

Здравствуйте,

вот пытаюсь разобраться, как отправить текст (POST) в кодировке windows-1251.
с латиницей - всё ok. а вот кирилицу - скрипт не видит.

пробую так:

Код
C++ (Qt)
QTextCodec *xcodec = QTextCodec::codecForName("Windows-1251");
QString text = xcodec->fromUnicode(ui->textLineEdit->text());
QUrl param( text );
QString url = QString("/my_script.php?mytext=" + param.toEncoded());
 

что я не правильно делаю?
Записан
BRE
Гость
« Ответ #1 : Март 05, 2009, 16:48 »

вот пытаюсь разобраться, как отправить текст (POST) в кодировке windows-1251.
с латиницей - всё ok. а вот кирилицу - скрипт не видит.
А по стандарту вроде кирилицу нельзя. Может я и заблуждаюсь.
Записан
Rcus
Гость
« Ответ #2 : Март 05, 2009, 16:49 »

Цитировать
QByteArray QTextCodec::fromUnicode ( const QString & str ) const
Цитировать
QString::QString ( const QByteArray & ba )
Constructs a string initialized with the byte array ba. The given byte array is converted to Unicode using fromAscii(). Stops copying at the first 0 character, otherwise copies the entire byte array.
You can disable this constructor by defining QT_NO_CAST_FROM_ASCII when you compile your applications. This can be useful if you want to ensure that all user-visible strings go through QObject::tr(), for example.
Рекомендую последовать совету доков.
Записан
zosia
Гость
« Ответ #3 : Март 05, 2009, 17:07 »

в main.cpp пишу:

#define QT_NO_CAST_FROM_ASCII
(#define QT_NO_CAST_FROM_BYTEARRAY)

всё равно нечего(

Код
C++ (Qt)
QTextCodec *xcodec = QTextCodec::codecForName("windows-1251");
 
Код
C++ (Qt)
QByteArray text = xcodec->fromUnicode(ui->textLineEdit->text());
 
или
Код
C++ (Qt)
QString text = xcodec->fromUnicode(ui->textLineEdit->text());
 
или просто
Код
C++ (Qt)
QString mytext = ui->textLineEdit->text();
QString text = mytext.toUtf8();
 

или я вообще не понимаю?
« Последнее редактирование: Март 05, 2009, 17:09 от zosia » Записан
BRE
Гость
« Ответ #4 : Март 05, 2009, 17:17 »

А уточни, что значит "скрипт не видит". Что если смешать в одной строке литиницу и кирилицу?
Записан
Rcus
Гость
« Ответ #5 : Март 05, 2009, 17:23 »

в main.cpp пишу:

#define QT_NO_CAST_FROM_ASCII
(#define QT_NO_CAST_FROM_BYTEARRAY)

всё равно нечего(

Такие вещи пишут в файле проекта или в опциях сборки, ну в крайнем случае до инклудов. Тогда ощутите разницу между QByteArray и QString Улыбающийся
Записан
zosia
Гость
« Ответ #6 : Март 05, 2009, 17:40 »

А уточни, что значит "скрипт не видит". Что если смешать в одной строке литиницу и кирилицу?

в скрипте идёт проверка, напр. просто протестировать:
Код
PHP
<?
if(isset($_POST['mytext']) && $_POST['mytext']=="hello") {
echo "good";
}elseif(isset($_POST['mytext']) && $_POST['mytext']=="russky_tekst") {
echo "good too";
}else{
echo "bad";
}
?>
 

если с любого другого скрипта или с него же проверить - всё ok и кирилица и латиница...
Записан
zosia
Гость
« Ответ #7 : Март 05, 2009, 17:43 »


Такие вещи пишут в файле проекта или в опциях сборки, ну в крайнем случае до инклудов. Тогда ощутите разницу между QByteArray и QString Улыбающийся

Как записать это в файле проекта? ...или в опциях сборки, я просто полный 0 в этом( не могли бы Вы подсказать?
Записан
BRE
Гость
« Ответ #8 : Март 05, 2009, 17:44 »

А выведи что находится в $_POST['mytext']
Записан
zosia
Гость
« Ответ #9 : Март 05, 2009, 17:50 »

А выведи что находится в $_POST['mytext']
напр. русское слово "привет":
привет

UTF-8 по видимому...
Записан
zosia
Гость
« Ответ #10 : Март 05, 2009, 17:54 »

я полный лох.
внимания никакого.

было:

Код
C++ (Qt)
  QByteArray ba("mytext=");
   ba.append( text.toUtf8() );
   http->request(header,ba);
 

а надо было:

Код
C++ (Qt)
  QByteArray ba("mytext=");
   ba.append(text);
   http->request(header,ba);
 


 Обеспокоенный

спасибо за помощь!
Записан
Страниц: [1]   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.18 секунд. Запросов: 21.