ホームページ > バックエンド開発 > Golang > Go で HTML エスケープ文字を効率的に変換するにはどうすればよいですか?

Go で HTML エスケープ文字を効率的に変換するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-12-15 06:33:13
オリジナル
536 人が閲覧しました

How to Efficiently Convert HTML Escape Characters in Go?

HTML エスケープ文字の効率的な変換

Golang では、さまざまなタスクでエスケープされた HTML 文字を直接変換する必要があります。よくある課題の 1 つは、「u003chtmlu003e」を「」に変換することです。 json.Marshal() は逆変換を簡単に処理できますが、json.Unmarshal() は面倒で時間がかかる可能性があります。

strconv.Unquote() の利用

幸いなことに、strconv.Unquote() 関数は、この難問に対する解決策を提供します。この関数を使用すると、エスケープされた文字列の引用符を効率的に解除できます。ただし、文字列を引用符で囲む必要があります。

実際の実装

// Important to use backtick ` (raw string literal)
// else the compiler will unquote it (interpreted string literal)!

s := `\u003chtml\u003e`
fmt.Println(s)
s2, err := strconv.Unquote(`"` + s + `"`)
if err != nil {
    panic(err)
}
fmt.Println(s2)
ログイン後にコピー

Go プレイグラウンドでこのコードを実行すると、望ましい結果が得られます。

\u003chtml\u003e
<html>
ログイン後にコピー

代替案オプション

Golang の html パッケージは、HTML テキストのエスケープおよびエスケープ解除の関数も提供します。 ASCII 文字は効果的に処理されますが、uxxxx 形式の Unicode シーケンスはサポートされず、decim; のみがサポートされます。または HH;.

ただし、バックスラッシュでエスケープされた文字列 (「u003chtmlu003e」など) は、解釈された文字列リテラルとしてコンパイラーによって自動的に引用符が外されることに注意することが重要です。この引用符の解除を回避するには、バックティック (`) で指定された生の文字列リテラル、または二重引用符で囲まれた解釈された文字列リテラルを使用します。

以上がGo で HTML エスケープ文字を効率的に変換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート