Вот

ользую Qt / C ++ в системе Linux. Мне нужно конвертироватьQLineEditтекст кstd::wstring и запишите это вstd::wofstream, Он работает правильно для строк ascii, но когда я ввожу любой другой символ (арабский или узбекский), в файле ничего не пишется. (размер файла 0 байт).

это мой код:

wofstream customersFile;
customersFile.open("./customers.txt");
std::wstring ws = lne_address_customer->text().toStdWString();
customersFile << ws << ws.length() << std::endl;

Выход дляJohn Smith введено в строку редактированияJohn Smith10, но для строк Unicode - ничего.

Сначала я подумал, что это проблема сQString::toStdWString(), ноcustomersFile << ws.length(); пишет правильную длину всех строк. Итак, я думаю, что я делаю что-то не так с написаниемwstring в файле. [?]

РЕДАКТИРОВАТЬ:

Я пишу это снова в затмении. и скомпилировал его с g ++ 4.5. результат такой же:

#include <iostream>
#include <string>
#include <fstream>

using namespace std;

int main()
{
   cout << "" << endl; // prints
   wstring ws = L"سلام"; // this is an Arabic "Hello"
   wofstream wf("new.txt");
   if (!wf.bad())
      wf << ws;
   else
      cerr << "some problem";
   return 0;
}

Ответы на вопрос(1)

Ваш ответ на вопрос