2016-12-20 13 views
1

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

+1

保存しようとしているテーブルはどの文字セットですか?特殊文字を使用すると、常に同じエンコーディングであらゆるものを得ることができました。 –

+0

[UTF-8のすべての方法]を読みましたか(http://stackoverflow.com/questions/279170/utf-8-all-the-way-through )? – simon

+0

私はUTF8でこれらの文字をプレーンテキストで保存したいと思ったときに(インターネットで)言われたので、すべてをUTF8に入れてください。しかし、それはデータベースに格納する前に文字を削除しているということです。/ – Akorna

答えて

1

誰かが作っ間違っていて、失われたファイルがエンコードされていなかったので、基本的にテキストはUTF8ではありませんでした。皆さんの時間をとって申し訳ありません。

+0

誰でもここでグーグル:あなたのツールチェーン全体がUTF-8を使っているなら、まったく操作する必要はありません。誰もが間違って使う 'utf8_encode()'のようなものです。 –

関連する問題