文字セット
ASCII文字は、最初は失われる最初ではない場合、パリティとして使用されている7つの128文字、標準のASCII最上位ビット(B7)の合計を設定します。
ISO-8859-1 128-255保存されたラテン文字と拡張ASCII、ので、基本的に欧米諸国は、文字セットを使用することができました。
ANSI米国規格協会
これは、間のマルチバイト文字セット(MBCS、マルチByteChactacterセット)、0〜127個の文字を定義依然として文字バイトの代表である、2バイトの文字を表します。
マルチバイト文字セットをコーディングGB2312 GBKの確立に基づいています
GB2312、GBKまだANSIコード、127は、2つの漢字を表現するよりも大きい、GB2312 6763は、一般的に使用される漢字を表すことができます。GBKエンコーディングは延長GB2312中国語の文字で、21003個の文字を表現することができます。
UTFエンコーディングは、可変長符号化、シングルバイトASCIIコードとが同一です。記号nバイト(N> 1)の場合、最初のバイトの最初のnビットが1、N + 1が0であり、最初の2つのバイトは、後ろに10です。
UTF-8バイトの長さ1-4
2または4バイトのUTF-16長さ
UTF-32 4バイト長
QT プログラミング、QStringのは、UTF-16の内部メモリを使用しました。デフォルトのエンコーディングは、中国のGB2312 / GBKの下にあります。
BOMのエンディアン
LE、小端部、下部に格納された下位アドレス。
下位アドレスに格納されている高、大端部BE。
BOMヘッダのバイトオーダーマーク、テキストヘッダ
FE FF、すなわち、大端BE意味します
FF FEはLE、即ち、小端部を表します
QStringの
Unicode4.0格納されている文字列USHORT 16-bitQCharsを使用して内部のQString。あなたはQTインターフェイス文字列内の非動作を使用する場合は、エンコーディング変換を注意してください。
文字列のカプセル化処理をQStringの。
空の裁判官== "" のisNullのisEmpty
文字列の連結+ =
%1%2引数の書式文字列()
たとえば、/ * *フォーマット/
QStringのSSR;
SSR = QStringの( "名前=%1%2%3%4%5")
.arg( "暁明")
.arg(15)
.arg(14.5)
.arg(123,0,2)
.arg(255,8,16)。
qDebug()<< SSR。
一方、検索と置換QStingは、正規表現をサポートしています。
QT中国の文字化け質問
デフォルトの文字セット、またはコードは、データソースと一致しません。
QT文字セット:
コーデック= QTextCodec :: codecForName(「UTF-8」);
QTextCodec :: setCodecForLocale(コーデック);
QTextCodec :: availableCodecs();
コードセットを設定した後にのみQStringの:: fromlocal8bitとtolocal8bitに影響を与えます
次のように:
するchar * SRC = "メタデータの中国のGBK"。
// GBKまたはGB2312メタデータはマルチバイトQStringの中に保存されています
//デフォルトのローカルエンコーディングGBK
QStringのSTR1 = QStringの:: fromLocal8Bit(SRC);
qDebug()<< STR1。
// QStringのGBKを変換し、出力
。COUT << str1.toLocal8Bit()toStdString()<< ENDL。
//ローカル符号化形式、原稿をセット
QTextCodec :: setCodecForLocale(QTextCodec :: codecForName( "UTF-8"));
QStringのSTR2 = QStringの:: fromLocal8Bit(str1.toUtf8())。
//同等のQStringのSTR2 = QStringの:: fromLocal8Bit(str1.toStdString()c_str())。
QStringの下で//ウィンドウの引数として使用します
メッセージボックス(0、str2.toStdWString()c_str()、L "中国のタイトルQ"、0);
ソース・ファイル・フォーマットの文字セット(VSとqtCreator異なる設定)。
QtCreator符号化文字集合:ツール - >オプション - >テキストエディタ - >行動
VSは、UTFエンコーディングでファイルとして保存、または追加することができます
コードステートメント符号化フォーマットとの#pragma execution_character_set( "UTF-8")。
この点は、ファイルのエンコーディングを持っている場合はUTFあり、再度の#pragma構文よりも多くの場合、これは再び文字化けが発生することに注意してください。
あなたは今無用VSプロジェクトのプロパティで設定した文字を、設定した場合。
文字セットの変換マクロ機能QStringLiteral、マルチバイトUTFに変換されます。