0

一般是字符写错了,仔细检查下json_decode前的文本。是不是写错了什么字符。因为是laravel框架报错只能这样解决。

找到decode前的文本后,用下面的方法,进行debug。解决到JSON_ERROR_UTF8的错误就行了。

echo json_decode('"\‘x“');
var_dump(json_last_error());

// 0 = JSON_ERROR_NONE No error has occurred  
// 1 = JSON_ERROR_DEPTH   The maximum stack depth has been exceeded  
// 2 = JSON_ERROR_STATE_MISMATCH   Invalid or malformed JSON  
// 3 = JSON_ERROR_CTRL_CHAR Control character error, possibly incorrectly encoded  
// 4 = JSON_ERROR_SYNTAX Syntax error  
// 5 = JSON_ERROR_UTF8 Malformed UTF-8 characters, possibly incorrectly encoded PHP 5.3.3
0
package main

import (
"fmt"
"unicode/utf8"
)

func main() {
s := "2333我"
fmt.Println(len(s))
fmt.Println(utf8.RuneCountInString(s))

}

Broadcast


JoyK
Better personal homepage
reddit style
GitHub Flavored Markdown syntax
Adaptive layout