PHPのJSONデータをAndroid handphoneから送信されたデータで読み込んでいます。ユーザーは名前を送信し、JSON/PHPはそれをMySqlデータベースに埋め込みます。私のユーザーの一部は韓国人です。アンドロイドはうまく韓国語の文字を処理しますが、データはJSON経由でやってきたときに、その後、そのようにPHPで読む:PHP/JSONの文字セットのデコード
$json = $_SERVER['HTTP_JSON'];
$data = json_decode($json);
$username = $data->username;
、このような「김が」9C9G」として$ユーザ名に変異されるように完璧な韓国語音節"私のEclipseデバッガでは、名前がまだAndroid側で正しくフォーマットされているのがわかりますが、PHP側は正しくありません。私はMySQLの段階にまだ達していないし、それはすでにジャックされています。
他の文字を受け入れるには、PHP側で何をすべきですか?私は単に名前をテーブルに埋め込み、後で文字列で参照したいだけです。また、これらの文字をMySQL DBに埋め込むには、何をする必要がありますか?
それはそうのようなAndroidアプリから送信された:あなたはおよそ私はAndroidがあなたのPHPアプリにデータを渡していることを推測することができ「Androidはうまく韓国語の文字を扱う」言ったことから、
public void postData() throws JSONException{
// Create a new HttpClient and Post Header
HttpClient httpclient = new DefaultHttpClient();
HttpPost httppost = new HttpPost("http://martypants.us/triominoes/register.php");
JSONObject json = new JSONObject();
try {
JSONArray postjson = new JSONArray();
postjson.put(json);
// Post the data:
httppost.setHeader("json", json.toString());
httppost.getParams().setParameter("jsonpost", postjson);
// Execute HTTP Post Request
System.out.print(json);
HttpResponse response = httpclient.execute(httppost);
<snip>
}
'var_dump($ json)'はあなたに何を提供しますか?すなわち、最初にクライアントから送信されるデータはどのようなものですか? – deceze
文字列が正しくエンコードされていないと 'json_decode()'が 'NULL'を返すので、データベースに問題がある可能性があります。あなたのMySQLテーブルとカラム(ユーザ名を格納する場所)が正しいエンコーディング(通常はutf8_general_ci)を持っていますか? – entropid
var_dumpは "@ l"のようなスクランブル文字を与えてくれるだけです。 I – Martin