2013-08-15 9 views
6

mssqlへのデータベースクエリで厄介な問題があります。結果にドイツ語の 'ä'のような特殊文字が含まれている場合は、json_encodeを使用して結果をjsonとして正しく取得することはできません。json_encodeはMSSQL-SELECTからJSON_ERROR_UTF8を生成します

json_last_error JSON_ERROR_UTF8に等しいリターン。私はデータベースがUTF-8としてエンコードされた値を返さないと思います。データベースコレクションは* Latin1_General_CI_AS *で、影響を受ける列はvarcharsです。

php mssql.charset設定は無効です。

mysqlユーザはmysql_query('SET CHARACTER SET utf8');を使用して戻り値を正しくエンコードできます。 mssqlの値を正しく取得するにはどうすればよいですか?

ヒント - データベースの内容を変更することはできません。

+0

json_encode()の前にPHPのiconv()を試してください。 – goat

+0

「utf8_encode」が最初にデータです。 – subroutines

答えて

11

JSONエンコードする前に、文字列の周りにutf8_encode()を使用してください。

+0

それは最高の解決策になるために継ぎ目があります。結果を反復して変換してください。そのヒントをありがとう。 – hofmeister

+0

それは働いた...... –

関連する問題