我们如何直接转换"\u003chtml\u003e"
为"<html>"
?使用转换"<html>"
到"\u003chtml\u003e"
相当容易json.Marshal()
,但是json.Unmarshal()
又很繁琐。在golang中有没有直接的方法可以做到这一点?
您可以使用strconv.Unquote()
进行转换。
您应该注意的一件事是,strconv.Unquote()
只能取消引用中的字符串(例如,以引号char "
或反引号char
开头和结尾```),因此我们必须手动附加该字符串。
例:
// 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 Playground上尝试):
\u003chtml\u003e
<html>
注意: 要对HTML文本进行转义和转义,可以使用该html
包。引用其文档:
html包提供用于转义和取消转义HTML文本的功能。
但html
包(具体html.UnescapeString()
)做形式的未解码的unicode序列\uxxxx
,仅&#decimal;
或&#xHH;
。
例:
fmt.Println(html.UnescapeString(`\u003chtml\u003e`)) // wrong
fmt.Println(html.UnescapeString(`<html>`)) // good
fmt.Println(html.UnescapeString(`<html>`)) // good
输出(在Go Playground上尝试):
\u003chtml\u003e
<html>
<html>
笔记2:
您还应该注意,如果您编写如下代码:
s := "\u003chtml\u003e"
该带引号的字符串将由编译器本身取消引用,因为它是一个 解释后的字符串文字 ,因此您无法真正进行测试。要在源代码中指定带引号的字符串,可以使用反引号指定
原始字符串文字 ,也可以使用 双引号的 解释字符串文字:
s := "\u003chtml\u003e" // Interpreted string literal (unquoted by the compiler!)
fmt.Println(s)
s2 := `\u003chtml\u003e` // Raw string literal (no unquoting will take place)
fmt.Println(s2)
s3 := "\\u003chtml\\u003e" // Double quoted interpreted string literal
// (unquoted by the compiler to be "single" quoted)
fmt.Println(s3)
输出:
<html>
\u003chtml\u003e
问题内容: 我想将包含转义字符的字符串转换为普通格式,就像Python的词法分析器所做的一样: 当然,无聊的方法是将所有已知的转义字符一一替换:http : //docs.python.org/reference/lexical_analysis.html#string- literals 您将如何在上述代码中实现? 问题答案: 几个类似的编解码器是可用的,如ROT13和十六进制。 上面是Pyth
本文向大家介绍JS实现HTML标签转义及反转义,包括了JS实现HTML标签转义及反转义的使用技巧和注意事项,需要的朋友参考一下 简单说一下业务场景,前台用户通过input输入内容,在离开焦点时,将内容在div中显示。 这时遇到一个问题,如果用户输入了html标签,则在div显示中,标签被解析。 由于是纯前端操作,不涉及后端,因此需要通过js对输入内容进行转义。 这里提供一个非常简单有效的转义方案,
问题内容: 有没有一种方法可以将字符串转换为可以在Web文档中正确显示的字符串?例如,更改字符串 至 问题答案: 具有专门为此设计的功能: http://commons.apache.org/proper/commons- lang/javadocs/api-3.1/org/apache/commons/lang3/StringEscapeUtils.html
问题内容: 在创建自定义标签或Java方法来执行此操作之前,在JSP中转义HTML字符的标准方法是什么? 我有一个String对象,我想在HTML中显示它,以便它按原样显示给用户。 例如: 会成为: 问题答案: 简短答案: 还有另一种选择:
问题内容: 我从公共API接收到一个JSON对象,该对象本身具有一个转义的JSON字符串。 我如何将此属性转换为实际的JSON对象(未转义),以便使用NewtonSoft Json.NET反序列化整个响应? 问题答案: 这是我根据 Sam 的答案使用的可行解决方案:
在配置文件中,我有一个要分配URL的键。问题是YAML将:和字符解释为创建映射或列表,因此它的行有问题 (都是因为http后面的冒号和中间的连字符) 是否有明确的方法可以转义“:”和“-”?或者把整件事都放在单引号里,就这样结束了,这样行吗?