2013-08-15 16 views
6

Bir veritabanı sorgusunda mssql ile sıkıcı bir sorunum var. Sonuç, 'ä' gibi özel karakterler içeriyorsa, sonucu doğru olarak json olarak almak için json_encode kullanamıyorum.json_encode, MSSQL-SELECT üzerinden JSON_ERROR_UTF8 üretir

json_last_error JSON_ERROR_UTF8 eşittir dönüş . Veritabanının, değerleri kodlanmış UTF-8 olarak döndürmediğini tahmin ediyorum. Veritabanı koleksiyonu * Latin1_General_CI_AS * ve etkilenen sütunlar varchars.

php mssql.charset yapılandırmasının bir etkisi yoktur.

Ben MySQL kullanıcıların doğru dönüş değerlerini kodlamak için mysql_query('SET CHARACTER SET utf8'); kullanabileceği okuyun. Mssql için doğru değerleri almak için ne yapabilirim?

İpucu - Veritabanındaki hiçbir şeyi değiştiremiyorum.

+0

jpe_encode() – goat

+0

'utf8_encode' önce verileri ilk önce php'nin iconv() yöntemini deneyin. – subroutines

cevap

11

JSON kodlamadan önce dizenin etrafında utf8_encode() kullanın.

+0

En iyi çözüm olarak dikiş atıyor. Sadece iterrate sonuçları ve dönüştürebilirsiniz. Bu ipucu için teşekkürler. – hofmeister

+0

çalıştı ...... –