บทความนี้สอนวิธีแก้ไข JSON ไม่เป็นภาษาไทย PHP ด้วยการกำหนดค่า JSON_UNESCAPED_UNICODE ในคำสั่งแปลงเป็น JSON คือ json_encode และเมื่อใช้ json_decode ก็จะเป็นภาษาไทย ไม่เพี้ยน คุณจะได้เรียนรู้วิธีการกำหนดค่า JSON_UNESCAPED_UNICODE ในโค้ดโปรแกรม และเห็นผลลัพธ์จากการทำงาน โดยมีรายละเอียดดังนี้
ตัวอย่าง โค้ดโปรแกรมวิธีแก้ไข JSON ไม่เป็นภาษาไทย PHP
<?php
$products = array(
array("id" => 1, "name" => "คอมพิวเตอร์"),
array("id" => 2, "name" => "ดินสอ"),
array("id" => 3, "name" => "ยางลบ"),
array("id" => 4, "name" => "หนังสือ"),
);
$json_data = json_encode($products, JSON_UNESCAPED_UNICODE);
print_r($json_data );
$data = json_decode($json_data);
echo "<br>";
print_r($data);
?>
// json_encode
[{"id":1,"name":"คอมพิวเตอร์"},{"id":2,"name":"ดินสอ"},{"id":3,"name":"ยางลบ"},{"id":4,"name":"หนังสือ"}]
// json_decode
Array ( [0] => stdClass Object ( [id] => 1 [name] => คอมพิวเตอร์ ) [1] => stdClass Object ( [id] => 2 [name] => ดินสอ ) [2] => stdClass Object ( [id] => 3 [name] => ยางลบ ) [3] => stdClass Object ( [id] => 4 [name] => หนังสือ ) )
จากตัวอย่างมีตัวแปร products พร้อมค่าภาษาไทย จากนั้นแปลงเป็น json ด้วย json_encode พร้อมกำหนดค่า JSON_UNESCAPED_UNICODE เพื่อสั่งให้ไม่ต้องแปลง unicode เป็นรหัส escape ส่งผลให้เมื่อแสดงค่า json ภาษาไทย จะแสดงเป็นภาษาไทย ไม่แสดงเพี้ยน จากผลลัพธ์ทั้งการใช้คำสั่ง json_encode และ json_decode ซึ่งแสดงผลลัพธ์เป็นค่า json ภาษาไทยทั้งหมด