0
我在Go中遇到json解碼器的問題。我有通過套接字進行通信的客戶端(dotnet core)和服務器(go)。編碼設置爲utf-8。在服務器端解碼後不是正確格式的字符串之一。JSON解碼器出錯UTF-8中的解碼字符串錯誤
轉到解碼代碼:
buf := make([]byte, bufferSize)
_, err := conn.Read(buf)
if err != nil {
fmt.Println("Error reading:", err.Error())
}
s := string(buf[:])
r := strings.NewReader(s)
d := json.NewDecoder(r)
request := Request{}
d.Decode(&request)
可變小號包含正確的字符串解碼之前:https://i.stack.imgur.com/EUYF3.png和ARGS包含正確的單詞 「zářit」。
解碼後弦破,幷包含這樣:https://i.stack.imgur.com/Zqan8.png
我不明白表示... + 2個從第二圖像,我不知道該怎麼這個字符串正確的方式進行解碼。
編輯:
問題的核心可以用這個代碼被複制:
package main
import (
"fmt"
"encoding/json"
"strings"
)
type Request struct {
Arg string
}
func main() {
s := "{\"Arg\": \"zářit\"}"
r := strings.NewReader(s)
d := json.NewDecoder(r)
request := Request{}
d.Decode(&request)
for i := 0; i < len(request.Arg); i++ {
char := request.Arg[i]
fmt.Print(string(char))
}
fmt.Println()
fmt.Println(request.Arg)
}
爲什麼輸出是不一樣的?我應該如何得到相同的結果?
能否請您分享'Request'的定義是什麼? –
你是如何查看解碼值的?如果您只是將其打印出來,它會是什麼樣子? – JimB
你可以請添加一個示例輸入和你的struct'Request'的代碼嗎?或操場鏈接 –