1

Facebook からいくつかの文字列を取得していますが、文字列のどのエンコーディングかわかりません。データベース table に挿入する前に、この文字列を utf8 に変換する必要があります。このエラー メッセージが表示されます。エラーのスクリーンショット

これが私のphpコードです。

$email = (isset($this->_userinfo['email']) ? $this->_userinfo['email'] : '');
$fname = $this->_userinfo['first_name'];
$lname = $this->_userinfo['last_name'];
$name  = $this->_userinfo['name'];

$sql = 'INSERT INTO users '
     . '(fbid, fbuid, fullname, userlevel, email, name, sirname) '
     . 'VALUES("'
     . $this->_fbid . '","'
     . $fbuid . '","'
     . $name . '","' 
     . $userlevel . '","' 
     . $email . '","' 
     . $fname . '","' 
     . $lname . '")';
4

4 に答える 4

4

このコードを試しましたか?

   mysql_query('set names utf8'); 
于 2012-09-21T18:02:31.373 に答える
1

これを行うには、 utf8_encodeを見てください。これは、データが実際に UTF-8 でエンコードされている場合にのみ機能することに注意してください。残念ながら、文字列を見て、どのエンコーディングが使用されているかを確認する方法はありません。

于 2012-09-21T17:04:24.030 に答える
1

この質問を見てみたいかもしれません:

エンコーディングを検出し、すべてを UTF-8 にします

特にSebastian Grinoliによる 2 番目の回答

彼は、Windows 拡張 ASCII を UTF8 に正しくエンコードし、必要に応じて UTF8 を修正するクラスを作成 (およびそのリンクを提供) しました。

あなたがUTF8の土地にいるときに持っていると本当に便利なツールです:)

于 2012-09-21T17:08:46.243 に答える
1

ここにリンクの説明を入力

私にとっては、次のコードで動作します:

$mysqli = mysqli_connect( ... ); mysqli_query( $mysqli, 'SET NAMES "utf8" COLLATE "utf8_general_ci"' );

あるいは単に:

mysqli_set_charset( $mysqli, 'utf8' );

よろしく、頑張ってください!

于 2015-01-23T06:47:22.803 に答える