「João」のようなアクセント付きのエントリを持つテーブルを持つ MySQL データベースがあります。
エントリは C/C++ コードの MySQL++ クエリで選択されますが、特にこのエントリは "Jo�o" ( printf
、fprintf
またはstd::cout <<
) として出力されます。
私が理解したいのは、データ フローのどこでこの文字が正しくエンコードされていないかということです。
もう少しコンテキスト: フロントエンドは HTML/PHP であり、PDO を使用して MySQL データベースにデータを挿入します。
HTML の PDO クエリで文字が正しく表示されます。また、次のように正しく表示されます。
mysql> select * from <table>;
そのため、表にうまく書かれていると思います。この問題は、MySQL++ クエリまたは C/C++ 出力コマンドのいずれかにあるようです。
関係あるかわかりませんが、MySQL のテーブルエンコーディングはutf8_general_ci
で、シェルロケールはLANG=en_US.UTF-8
.