基本的にヨーロッパ諸国の場所の名前であるUTF-8文字列がメモリにいくつかあります(これはより大きなシステムの一部です)。私がやろうとしているのは、それらをテキストファイルに書き込むことです。Linux マシン (Fedora) を使用しています。したがって、これらの名前文字列 (char ポインター) をファイルに書き込むと、ファイルは拡張 ASCII 形式で保存されます。
次に、このファイルを Windows マシンにコピーし、これらの名前を mySQL DB にロードする必要があります。メモ帳 ++ でテキスト ファイルを開くと、エンコーディングがデフォルトで ANSI に設定されます。しかし、UTF-8 へのエンコーディングを選択することができ、次の 3 文字を除いてほとんどすべての文字が期待どおりに見えます: - Ő、ő、および ű。これらは、テキスト内で Ő、ő、および ű として表示されます。
何が間違っているのか考えている人はいますか?これらが拡張 ASCII シンボルの一部ではないことはわかっています。しかし、これをファイルに書き込む方法は次のようなものです。
// create out file stream
std::ofstream fs("sample.txt");
// loop through utf-8 formatted string list
if(fs.is_open()) {
for(int i = 0; i < num_strs; i++) {
fs << str_name; // unsigned char pointer representing name in utf-8 format
fs << "\n";
}
}
fs.close();
ú、ö、ß などの文字でもすべてがきれいに見えます。問題は上記の 3 文字だけです。これに関する考え/提案/コメントはありますか? ありがとう!
例として、「Gyömrő」のような文字列は「Gyömrű」と表示されます。