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 サイトの他の関連記事を参照してください。