Ben json_encode yoluyla JavaScript PHP Japon karakterleri aktarırken bir sorun yaşıyorum.
İşte csv dosyadan okunan ham veridir.
PRODUCT1,QA,テスト
PRODUCT2,QA,aテスト
PRODUCT3,QA,1テスト
Sorun yankı json_encode ($ return_value), $ return_value verilerin üstünde içeren 2-boyutlu dizi nerede tarafından bu verileri geçerken, Japon kelime 'テスト' ajax yanıt tarafta düştü ve boş dize olarak gösterilir gets olduğunu. Ben 'bir テスト' ya da '1 テスト '2. ve yukarıdaki örneğin 3 hatları gibi Japon kelimenin başında herhangi alfabetik / sayısal karakter, koymak Ancak, bu kelimeler ok geçmiş olsun.
Aşağıda veri ajax yanıt tarafında gibi görünüyor nasıl. Gördüğünüz gibi, 1 blok 3. eleman boştur. Ben yukarıdaki ham verilerin başka deyişle gelen 'a' ya da '1 'kaldırırsanız, bu karakterler çok tepki tarafta boş olur. Bu şimdiye kadar test ettiğimiz Japonca karakterlerin her türlü oluyor.
[["PRODUCT1","QA",""],["PRODUCT2","QA","a\u30c6\u30b9\u30c8"],["PRODUCT3","QA","1\u30c6\u30b9\u30c8"]]
Herkes bu neden oluyor herhangi bir fikir var mı ve bu sorunu nasıl aşabiliriz?
Burada her taraftan bir kod parçasıdır.
PHP:
function getFileContents($dirName,$filename){
$return_value = array();
$my_file= fopen($dirName . $filename, "r");
$row = 0;
while (($data = fgetcsv($my_file, 1000, ",")) !== FALSE) {
$num = count($data);
for ($c=0; $c < $num; $c++) {
#csv file is written in euc-jp so convert to utf-8 here.
$return_value[$row][$c] = mb_convert_encoding($data[$c], "UTF-8", "EUC-JP");
}
$row++;
}
fclose($my_file);
echo json_encode($return_value);
}
JavaScript:
$.ajax({
type: "POST",
url: "data.php",
data: {
"dirName" : "./data/",
"filename" : filename
},
dataType :"json",
success : function(response){
// more code
// At this point, Japanese characters are already empty strings.
}
});
Şimdiden teşekkürler yardımınız için çok!