mySqlのテーブルと後でSQLサーバのテーブルにテキストデータを解析しようとしています。このテキストには、ⓜなどの特殊文字が含まれています。テキストのビットがPHP上にまだ残っている場合は、すべてうまくいきますが、すぐにutf8_encode(teststring)を使用してください。それはキャラクターを失い、それをâに変更する。PHPを使用して特別なutf8シンボルをSQL/mySqlデータベースに取得
私が見つけた唯一の回避策は、データベースから戻すときに文字列をもう一度デコードすることでしたが、データの多くを処理する場合は非常に非効率です。何か回避策はありますか?
すでにインターネット上でutf8mb4 encondingと他の多くの回答を試みました。
例:
$test = "some string containing ⓜ";
print_r($test."</br>");
$test = utf8_encode($test);
print_r($test."</br>");
$test = utf8_decode($test);
print_r($test."</br>");
結果:
some string containing ⓜ
some string containing â
some string containing ⓜ
私ははutf8_encodeを(使用しない場合)私は、データベースからのエラーを解析し得る:会社ではGeneral error: 1366 Incorrect string value
保存しようとしているテーブルはどの文字セットですか?特殊文字を使用すると、常に同じエンコーディングであらゆるものを得ることができました。 –
[UTF-8のすべての方法]を読みましたか(http://stackoverflow.com/questions/279170/utf-8-all-the-way-through )? – simon
私はUTF8でこれらの文字をプレーンテキストで保存したいと思ったときに(インターネットで)言われたので、すべてをUTF8に入れてください。しかし、それはデータベースに格納する前に文字を削除しているということです。/ – Akorna