JSON in PHP - PHP 5.2 正式納入 JSON extension
json
自 PHP 5.2 起,正式納入 JSON extension 。函數名稱跟 php-json 一樣是 json_decode()/json_encode() 。稍微要注意 json_decode() 多加了一個選擇性的參數。 PHP 官方的 json_decode() 對於 Object of JSON 的回傳型態是個體 (object) 而不是陣列 (associative array) ,但可以指定第二個參數為 true 以回傳陣列。這個差異是基於 JavaScript 和 PHP 的語法不同。對 JavaScript 而言, obj.member 和 obj['member'] 是等義的,兩者都是個體成員存取操作。對 PHP 而言, $obj->member 和 $obj['member'] 卻是不等義的,前者是個體成員存取操作,後者則是陣列索引子操作。
再次提醒, JSON 規範的字元編碼為 UTF-8 ,如果 PHP script 檔案的儲存編碼格式不是 UTF-8 (事實上, PHP 官方建議以 ISO-8859-1 編碼儲存) ,那麼調用 json_encode() 時,須先轉換編碼。 PHP 官方範例是用 utf8_encode() ,這只適用歐洲語系,對東亞語系而言是錯的! utf8_encode($s) 的結果等於 iconv('iso-8859-1', 'utf-8', $s) 。如果將一個中文字串視為 ISO-8859-1 字元集的內容編碼,那麼結果將是一個不可讀的字串。
Posted by shirock at
樂多Roodo! │12:11
│
回應(2)
│
引用(0)
│
PHP
引用URL
http://cgi.blog.roodo.com/trackback/2418349

就算我的PHP文件是UTF-8編碼,直接調用 utf8_encode 後出來的結果也是不可讀
\u00e5\u009c\u00a8\u00e5\u009c\u00a8\u00e5\u009c\u00a8\u00e5\u00b7\u00a5\u00e5\u00b7\u00a5\u00e6\u009c\u0089\u00e5\u00b7\u00a5\u00e8\u0089\u00ba\u00e6\u009c\u00af\u00e5\u009c\u00a8\u00e5\u009c\u008b

utf8_encode把值編碼了,不過不知道是編成什么碼(好像是unicode)
但是以上字符串在js中可以直接eval