OracleをODBCで使用したいと考えています。QTとOracleの間の韓国語の文字セットの処理方法
Oracleからデータを正常に取得できました。しかし、韓国の文字は????のように壊れています。 すべてのプログラマーがインターネットフォーラムで言ったように、私はQTextCodec
を以下のように適用しようとしました。
私はEUC-KR
と他のコーデック名を試しました。しかし、変化はありません。
QTextCodec *codec = QTextCodec::codecForName("UTF-8");
QSqlQuery q("select * from temp", db);
q.setForwardOnly(true);
QString contect= "";
while(q.next())
{
QByteArray name = q.value(0).toByteArray();
QString age = q.value(1).toString();
contect = contect + codec->toUnicode(name);
ui.textEdit->setText(contect);
}
のOracle側の情報は、私は(Windows 7で)日食を開発していますし、デフォルトのファイルのテキストエンコーディングがUTF-8である.....
NLS_CHARACTERSET : KO16MSWIN949
NLS_NCHAR_CHARACTERSET : AL16UTF16
NLS_LANG : KOREAN_KOREA.KO16MSWIN949
です。
コメントをいただければ幸いです。
ありがとうございました。
別の 'QTextCodec * codec2 = QTextCodec :: codecForName(" UTF-16 "); UTF-16のために1を作成してから' contect = contect + codec2-> toUnicode(name); 'を実行できますか? – ProfessionalAmateur
¤おそらく、DB結果の文字エンコーディングから、QT文字列が使用するエンコーディングに変換するのに役立ちます。あなたの間違った結果はあなたが現在行っていることではないことを強く示しています。つまり、DBの結果はUTF-8でエンコードされていません。乾杯&乾杯、 –