转自:http://114.xixik.com/character/
HTML中<,>,&等有特殊含义(<,>,用于链接签,&用于转义),不能直接使用。这些符号是不显示在我们最终看到的网页里的,那如果我们希望在网页中显示这些符号,该怎么办呢?
这就要说到HTML转义字符串(Escape Sequence)了。
转义字符串(Escape Sequence)也称字符实体(Character Entity)。在HTML中,定义转义字符串的原因有两个:第一个原因是像“<”和“>”这类符号已经用来表示HTML标签,因此就不能直接当作文本中的符号来使用。为了在HTML文档中使用这些符号,就需要定义它的转义字符串。当解释程序遇到这类字符串时就把它解释为真实的字符。在输入转义字符串时,要严格遵守字母大小写的规则。第二个原因是,有些字符在ASCII字符集中没有定义,因此需要使用转义字符串来表示。
<!-- Contents of this file are Copyright 2006-2008, Xixik Inc. -->
转义字符串的组成
转义字符串(Escape Sequence),即字符实体(Character Entity)分成三部分:第一部分是一个&符号,英文叫ampersand;第二部分是实体(Entity)名字或者是#加上实体(Entity)编号;第三部分是一个分号。
比如,要显示小于号(<),就可以写 < 或者 < 。
用实体(Entity)名字的好处是比较好理解,一看lt,大概就猜出是less than的意思,但是其劣势在于并不是所有的浏览器都支持最新的Entity名字。而实体(Entity)编号,各种浏览器都能处理。
提示:实体名称(Entity)是区分大小写的。
备注:同一个符号,可以用“实体名称”和“实体编号”两种方式引用,“实体名称”的优势在于便于记忆,但不能保证所有的浏览器都能顺利识别它,而“实体编号”则没有这种担忧,但它实在不方便记忆。
如何显示空格?
通常情况下,HTML会自动截去多余的空格。不管你加多少空格,都被看做一个空格。比如你在两个字之间加了10个空格,HTML会截去9个空格,只保留一个。为了在网页中增加空格,你可以使用 表示空格。
编程的时候要注意特殊字符的问题,很多运行时出现的问题都是因为特殊字符的出现而引起的。
注意,由于反斜杠本身用作转义符,因此不能直接在脚本中键入一个反斜杠。如果要产生一个反斜杠,必须一起键入两个反斜杠 (\\)。
编码转换(to Unicode)
(程序代码来源于网络)
Js版
<script>
test = "你好abc"
str = ""
for( i=0; i<test.length; i++ )
{
temp = test.charCodeAt(i).toString(16);
str += "\\u"+ new Array(5-String(temp).length).join("0") +temp;
}
document.write (str)
</script>
vbs版
Function Unicode(str1)
Dim str,temp
str = ""
For i=1 to len(str1)
temp = Hex(AscW(Mid(str1,i,1)))
If len(temp) < 5 Then temp = right("0000" & temp, 4)
str = str & "\u" & temp
Next
Unicode = str
End Function
Function htmlentities(str)
For i = 1 to Len(str)
char = mid(str, i, 1)
If Ascw(char) > 128 then
htmlentities = htmlentities & "&#" & Ascw(char) & ";"
Else
htmlentities = htmlentities & char
End if
Next
End Function
coldfusion版
function nochaoscode(str)
{
var new_str = “”;
for(i=1; i lte len(str);i=i+1){
if(asc(mid(str,i,1)) lt 128){
new_str = new_str & mid(str,i,1);
}else{
new_str = new_str & “&##” & asc(mid(str,i,1));
}
}
return new_str;
}
附:
在php中我们可以用mbstring的mb_convert_encoding函数实现这个正向及反向的转化。 如:
mb_convert_encoding ("你好", "HTML-ENTITIES", "gb2312"); //输出:你好
mb_convert_encoding ("你好", "gb2312", "HTML-ENTITIES"); //输出:你好
如果需要对整个页面转化,则只需要在php文件的头部加上这三行代码:
mb_internal_encoding("gb2312"); // 这里的gb2312是你网站原来的编码
mb_http_output("HTML-ENTITIES");
ob_start('mb_output_handler');
详见:http://114.xixik.com/character/
分享到:
相关推荐
HTML(HyperText Markup Language)是一种用于创建网页的标准标记语言,其中转义字符串是HTML中的一个重要概念,用于在网页中插入特殊字符或者防止某些字符被浏览器误解析。在HTML中,某些字符如 "、">"、"&" 等具有...
HTML转义字符串是Web开发中一个重要的概念,它涉及到网页内容的安全性和正确显示。在HTML中,某些字符具有特殊的含义,比如"<"代表",">"代表">","&"代表"&"等。为了在网页上直接显示这些字符而不是触发...
HTML转义字符分为预定义字符实体和数字字符实体两种类型。预定义字符实体包括常见的如"&"(&)、"<"(<)、">"(>)、"""(")和"'"(')等,它们分别对应于和号、小于号、大于号、双引号和单...
但有时需求是在HTML页面上使用这些符号,所以需要定义它的转义字符串。 有些字符在ASCII字符集中没有定义(如版权符号“:copyright:”)。因此需要使用转义字符(“:copyright:”对应的转义字符是“:copyright:”)...
- `string`:要转义的字符串。 - `flags`:可选参数,用于指定要转换的特殊字符集。默认情况下,转换 `, `>`, `&`, `"`. - `encoding`:指定字符串的编码,默认为内部编码。 - **示例**:`echo htmlspecialchars...
然而,在实际应用过程中可能会遇到一些问题,比如某些特殊字符(如HTML标签、Unicode字符等)会被自动转换为Unicode转义字符,这在一定程度上可能会影响到数据的正确性和可读性。本文将围绕“gson转义字符”这一主题...
在处理用户输入、插入特殊字符或进行字符串拼接时,使用转义字符可以确保浏览器正确地解析和展示内容。例如,如果你要在网页上显示一个带有尖括号的句子,如 "我喜欢吃苹果<和香蕉>",你应该写成 "我喜欢吃苹果&...
- `stripslashes`:与`addslashes`相对应,`stripslashes`用于去除字符串中的反斜线转义字符。 - `strip_tags`:用于去除字符串中的HTML和PHP标签。如果字符串中的标签不正确,它也会返回错误。 - `mysql_real_...
- **htmlentities** 和 **htmlspecialchars**: 将字符串中的某些字符转换为HTML实体,防止XSS攻击。 - **html_entity_decode** 和 **htmlspecialchars_decode**: 将HTML实体转换回原始字符。 ### 9. 字符串加密与...
除了以上提到的基本转义字符之外,HTML还支持广泛的特殊字符实体,如数学符号、希腊字母等,这些可以通过Unicode编码来引用。例如,`α` 表示希腊字母α。 #### 三、HTML转义字符使用要点 1. **转义字符必须...
另一个可行的方法是使用模板字符串(Template literals),它允许我们在字符串中直接包含特殊字符,无需转义: ```javascript var text = `a<&>`; document.getElementById('t').innerText = text; ``` 这里,`"`...
5. **字符串输出**:编辑完成后,我们需要将富文本内容转化为格式化的字符串,这涉及到HTML实体的转义,以防止在非HTML环境中显示特殊字符。例如,`需要转换为`<`,`>`转换为`>`。此外,还可能需要去除不必要...
- **Safe String**: MarkupSafe定义了一个`SafeString`类,这个类表示已知安全的字符串,可以与HTML实体直接合并而无需转义。 - **Escape机制**: 对于非安全字符串,MarkupSafe提供了`escape()`函数,将潜在的恶意...
HTML字符实体(Character Entities)是HTML中用来表示特殊字符的转义字符串(Escape Sequence),它可以让开发者在网页中显示特殊符号,如<、>、&等。 HTML字符实体分类有两种:一种是实体名称(Entity Name),一种...
HTML转义字符是用于在HTML文档中表示特殊字符的字符实体,例如 `会被转义为 `<` 以防止浏览器将其解释为标签。在提供的代码中,`HTMLServices` 类提供了一些便捷的方法来处理HTML内容。 1. **清除HTML代码** - ...
### C#字符串与HTML编码处理方式 在C#开发中,处理从数据库获取的数据并绑定到Grid等控件时,可能会遇到数据中的HTML标签或特殊字符导致显示异常的问题。为了解决这一问题,通常需要对数据进行HTML编码处理。本文将...
PHP提供了大量的内置字符串处理函数,这些函数可以帮助开发者处理各种与字符串相关的操作,从查找字符串到替换字符串,再到字符串比较等等。以下便是这些函数的详细知识点: 1. 查找字符位置函数: - strpos($str,...
HTML字符转义与反转义是JavaScript中处理字符串与HTML内容交互时常见的操作。在HTML中,某些字符有特殊的含义,例如"&"代表开始一个实体,"和">"分别表示开始和结束一个标签。如果不进行转义,这些字符可能会导致...
以下是一些常用的HTML字符实体: - 半方大的空白: (编码: ) - 全方大的空白: (编码: ) - 不断行的空格: (编码: ) - 小于:<(编码:<) - 大于:>(编码:&...
在JavaScript中,也有类似的概念,但JavaScript转义字符主要针对字符串中的特殊字符。例如: - \n:换行 - \r:回车 - \t:制表符 - \":双引号 - \':单引号 - \\:反斜杠自身 五、HTML转义字符表 HTML转义字符表...