ホームページ >バックエンド開発 >Golang >Go JSON 応答で Unicode 文字列を適切に処理するにはどうすればよいですか?

Go JSON 応答で Unicode 文字列を適切に処理するにはどうすればよいですか?

DDD
DDDオリジナル
2024-12-13 12:47:11931ブラウズ

How to Properly Handle Unicode Strings in Go JSON Responses?

Go 応答で Unicode 文字列を解析して引用解除する方法

API から JSON 応答を受信すると、代わりに生の ASCII コンテンツが表示される場合があります。読みやすいテキスト。これは、古いシステムとの互換性を確保するために、特定の Unicode 文字がエスケープ シーケンスを使用してエンコードされているためです。これらの文字を正しく解析して表示するには、次の手法を使用できます。

json パッケージの使用

json パッケージには、Unicode 文字列の引用符を解除して解析する便利な方法が用意されています。 。次の例は、その使用方法を示しています。

var i interface{}
err := json.Unmarshal([]byte(src), &i)
if err != nil {
    fmt.Println(err)
}

fmt.Println(i)

JSON レスポンスをインターフェースにアンマーシャリングした後、引用符で囲まれていない Unicode 値に簡単にアクセスできます。

strconv を使用します。 Unquote()

特定の Unicode 文字列の引用符を解除する必要があるだけの場合は、 strconv.Unquote() 関数を使用できます。この関数は入力として引用符で囲まれた文字列を予期し、引用符で囲まれていないバージョンを返します。例:

fmt.Println(strconv.Unquote(`"\u7d20\u672a\u8c0b"`))

Unicode を引用符から外すことの利点

  • 可読性の向上: 表示可能な文字がレンダリングされ、テキストが読みやすくなります。
  • 適切な表示: Unicode 文字は正確に表現され、国際化をサポートします。
  • ファイル サイズの縮小: 引用符で囲まれていない文字列は、エスケープされた文字列よりも小さいため、帯域幅要件が軽減されます。

注:

strconv.Unquote() は、で囲まれた文字列を想定しています。引用。生の文字列リテラル (``) を使用すると、コンパイラーがエスケープ シーケンスを解釈しないようにすることができます。

以上がGo JSON 応答で Unicode 文字列を適切に処理するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。