生の Unicode でエンコードされたコンテンツを読み取り可能にするにはどうすればよいですか?
Web API から JSON データをリクエストすると、生の ASCII コンテンツが表示されることがあります。 Unicode エスケープとして表示されます。 bufio.ScanRunes を使用した応答の解析は失敗しますが、json パッケージや strconv.Unquote などのツールを使用して応答をデコードすると、Unicode エスケープを読み取り可能なテキストに効果的に変換できます。
詳細な説明:
質問で提供された JSON データには、バックスラッシュ エスケープを使用して表現された Unicode 文字が含まれています。 u5408とu672a。これらのエスケープをデコードして実際の Unicode 文字を明らかにするには、次のメソッドを利用できます:
package main import ( "encoding/json" ) func main() { var i interface{} err := json.Unmarshal([]byte(`{"name": "\u5408\u80a5"}`), &i) fmt.Println(err, i) }
出力 (Go Playground で試してください):
<nil> map[name:同学]
fmt.Println(strconv.Unquote(`"\u7d20\u672a\u8c0b"`))
出力 (Go プレイグラウンドで試してください):
素未谋
strconv.Unquote には引用符で囲まれる文字列。コンパイラがエスケープの引用符を外さないように、生の文字列リテラル ( ` ) を使用して実現されます。それ自体。
以上がUnicode でエスケープされた生の JSON データを Go で読み取れるようにするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。