1

UTF-8 でエンコードされた Wikipedia XML ダンプを使用しています。現在、すべてを std::string として読み込んでいるため、std::cout を画面に表示すると、外国語の文字がぎくしゃくして表示されます。

ただし、実際の解析プロセスでは ASCII 文字のみが検索されますが、解析されたファイルをディスクに書き込むときに、外国語の文字を保持したいと考えています。つまり、出力のエンコーディングを入力と同じにしたいのです。

std::string を使用しても問題ありませんか、それとも ICU などを使用する必要がありますか? 私が調べたライブラリは、非常に複雑に思えます。これを行うために使用できる簡単なものはありますか?

4

2 に答える 2

1

テキストと非ASCII文字を壊さない限り、安全です。std::string を問題なく使用できます。

つまり、文字や単語を分割したり、テキストを大文字にしようとしたりするなど、XMLのコンテンツに関連していない場合でも、問題はありません。

于 2009-08-02T04:20:54.170 に答える
1

UTF-8 は、XML ドキュメントのデフォルトのエンコーディングです。ファイルに書き込むだけです。それを Unicode に変換して元に戻しても意味がありません。誤って画面にダンプされた場合は、視線をそらしてください:-)

「{」などの ASCII 文字を削除しても問題は発生しません。UTF-8 は、マルチバイト文字のバイトが 0 ~ 127 の範囲に含まれないように設計されているため、ASCII 文字と混同されることはありません。

于 2009-08-02T04:22:29.097 に答える