为啥html,xml的特殊符号转义不用斜杠,而要用& quot ;这样的奇怪形式?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为啥html,xml的特殊符号转义不用斜杠,而要用& quot ;这样的奇怪形式?相关的知识,希望对你有一定的参考价值。

能说明技术上的必要性最好。

1. 概念不同。
转义字符是开始一个字符序列,使得转义字符开头的该字符序列具有不同于该字符序列单独出现时的语义。
字符实体是html/XML中的预留字符,必须被替换为字符实体。
2. 用途不同。
转义主要是用于字符串,在字符序列内使用,也可用于不能显示字符。
字符实体用于HTML/XML,直接用于HTML/XML代码当中,在代码中输出字符。
3. 数量不同。
转义可用于ASCII部分字符。
字符实体可用于ASCII部分字符,还有ISO 8859-1部分字符。

对于特殊字符如á,转义并无意义,使用á就可以显示出来。追问

你说的是做斜杠有特殊含义
我说的是反斜杠,反斜杠在html里有什么特殊含义吗

追答

反斜杠在标签上表示转义,在标签内直接输出。

追问

所以说 用反斜杠转义有何不可呢?

追答

标签内怎么转义呢?

追问

比如说
\\>
这样难道不行?
只要有相应的解释器(浏览器) 我觉得解析不是问题

追答

\\"内部就无法转义,直接输出。

参考技术A   之所以需要转义符,是因为这些符号在HTML、xml的语法结构中具有特殊含义,不能直接用符号本身表示“自身”身份。
  以HTML为例,所有的语法结构都是通过一个个括号语义标签<>构成的单元,即基本识别码是<>,这是语法构成基础,这是规范。用斜杠来进行转义在原理上也可以实现,那就是另外一套语法规则了。尽管现代浏览器具有较强的自我校正能力,即便一些错误代码也可以正确识别展示。追问

你这完全没回答我的问题
我知道转义是什么,
但你没说明为什么斜杠没被采用,为什么其他编程语言一般都是用斜杠?而html xml不用?

追答

HTML语法规则就是这样的规定的,至于为什么这么规定要问当初设计语法的科学家。
但是一个语言的语法规定是否科学合理关系到语言的茁壮性和长久生命力,HTML语言能存活至今,说明其语法规定是比较科学合理的。倒推语法规则的一般性,可能是以下几点:
1、解决歧义。特殊符号不能直接用来表示自身,那么就需要其它方式来表示。斜杠的形式打破了以为基础代码构成单元的HTML语法,那么就需要在基础上额外添加说明性语法来解决最底层的构成单元冲突问题,否则就会产生歧义,到底是表示转义还是代表自身。
2、便于理解。代码都是人写的,需要人能读懂代码,这就包含了一个常用性与理解性问题。JS中的转义符是相对比较复杂的,如果把那套规则应用到HTML中,再用JS来操作HTML代码时,可能会形成意想不到的问题。
这个问题比较底层,你思考这个可以学如果开发一套语言。计算机语言有非常多,包括Java、perl、C++、python、cobol等,HTML只是其中一种。像有报道80岁都无法退休的COBOL程序员,就是因为cobol种复杂的过时语言就是以一种濒临消亡的计算机语言。

追问

你这当没说
虽然打了很多字
要问当初设计语法的科学家 --- 他们没时间回答,所以我跑这里来问来了

追答

规范就是这么定的,你如果想要弄清楚,就学习计算机语言开发,从最基础的01开始;都是已经说了,这么规定就是用来解决符号如何表达自己、代码的便捷性(包括兼容性、代码阅读性、茁壮稳定性问题)。这样的规定就像是交通规则中向右行驶、红灯停、绿灯行一样;你如果想知道为什么这么设计,就得问当初设计这套规则的人。语法中也可以实现你所谓的/用于转义,甚至可以用于浏览器生成页面,都可以,但是那套代码规则有没有人用、开发者接不接受就另说了。
你非要了解如此底层的问题,只能问最底层设计的人。

HTML特殊字符大全

 

国外网站整理的一份很全的HTML特殊字符集,共享出来供大家查阅吧。

使用方法:

  • 这些字符属于unicode字符集,所以,你的文档需要声明为UTF-8;
  • 下面符号列表的后面有两列编号,它们并不太一样,第一列是用于HTML的,你需要在前面加上&#符号;
  • 第二列可以用于CSS文件中,但是需要用反斜杠\转义;
  • 第二列也可以用于JavaScript,和CSS用法一样,不过要用\u来转义。

需要主意的是:

  • 有的字符在不同的浏览器下表现不太一样;比如小雪人 ? 在Firefox和Chrome下不太一样,钻石 ◆ 在IE下要比Chrome下要大一点儿;
  • 有的字符在某个浏览器下不会显示;当然原因并不是字符代码的问题,而是浏览器的bug,比如,–在Chrome下。。。
  • 但是,98%的字符都能在所有浏览器下正常显示的,不过如果你真的要使用,最好仔细在各个浏览器下验证一番。
  • 经测试这些字符在Android/iOS等智能终端的识别度比较差,所以,使用的时候要特别注意移动浏览器~~

各种箭头

  • ? 8672 21E0
  • ? 8674 21E2
  • ? 8673 21E1
  • ? 8675 21E3
  • ? 8606 219E
  • ? 8608 21A0
  • ? 8607 219F
  • ? 8609 21A1
  • 8592 2190
  • 8594 2192
  • 8593 2191
  • 8595 2193
  • 8596 2194
  • ? 8597 2195
  • ? 8644 21C4
  • ? 8645 21C5
  • ? 8610 21A2
  • ? 8611 21A3
  • ? 8670 21DE
  • ? 8671 21DF
  • ? 8619 21AB
  • ? 8620 21AC
  • ? 8668 21DC
  • ? 8669 21DD
  • ? 8602 219A
  • ? 8603 219B
  • ? 8622 21AE
  • ? 8621 21AD

形状

  • ? 8678 21E6
  • ? 8680 21E8
  • ? 8679 21E7
  • ? 8681 21E9
  • ? 8631 21B7
  • ? 8630 21B6
  • ? 8635 21BB
  • ? 8634 21BA
  • ? 10227 27F3
  • ? 10226 27F2
  • ? 10224 27F0
  • ? 10225 27F1
  • 8629 21B5
  • ? 8623 21AF
  • ? 8693 21F5

向右的箭头

  • ? 10132 2794
  • ? 10137 2799
  • ? 10152 27A8
  • ? 10162 27B2
  • ? 10140 279C
  • ? 10142 279E
  • ? 10143 279F
  • ? 10144 27A0
  • ? 10148 27A4
  • ? 10149 27A5
  • ? 10150 27A6
  • ? 10151 27A7
  • ? 10165 27B5
  • ? 10168 27B8
  • ? 10172 27BC
  • ? 10173 27BD
  • ? 10170 27BA
  • ? 10163 27B3
  • ? 10174 27BE

基本形状

  • 9650 25B2
  • ? 9658 25BA
  • 9660 25BC
  • ? 9668 25C4
  • ? 10084 2764
  • ? 9992 2708
  • 9733 2605
  • ? 10022 2726
  • ? 9728 2600
  • 9670 25C6
  • ? 9672 25C8
  • ? 9635 25A3

标点

  • « 171 00AB
  • » 187 00BB
  • 139 008B
  • 155 009B
  • 8220 201C
  • 8221 201D
  • 8216 2018
  • 8217 2019
  • 8226 2022
  • ? 9702 25E6
  • ¡ 161 00A1
  • ¿ 191 00BF
  • 8453 2105
  • 8470 2116
  • & 38 0026
  • @ 64 0040
  • ? 8478 211E
  • 8451 2103
  • 8457 2109
  • ° 176 00B0
  • | 124 007C
  • ¦ 166 00A6
  • 8211 2013
  • 8212 2014
  • 8230 2026
  • 182 00B6
  • 8764 223C
  • 8800 2260

法律符号

  • ® 174 00AE
  • © 169 00A9
  • ? 8471 2117
  • 153 0099
  • ? 8480 2120

货币

  • $ 36 0024
  • ¢ 162 00A2
  • £ 163 00A3
  • ¤ 164 00A4
  • 8364 20AC
  • ¥ 165 00A5
  • ? 8369 20B1
  • ? 8377 20B9

数学

  • ½ 189 00BD
  • ¼ 188 00BC
  • ¾ 190 00BE
  • ? 8531 2153
  • ? 8532 2154
  • ? 8539 215B
  • ? 8540 215C
  • ? 8541 215D
  • 8240 2030
  • % 37 0025
  • < 60 003C
  • > 62 003E

音乐符号

  • ? 9833 2669
  • ? 9834 266A
  • ? 9835 266B
  • ? 9836 266C
  • ? 9837 266D
  • ? 9839 266F

对号、错号

  •   160 00A0
  • ? 9744 2610
  • ? 9745 2611
  • ? 9746 2612
  • ? 10003 2713
  • ? 10004 2714
  • ? 10005 10005
  • ? 10006 2716
  • ? 10007 2717
  • ? 10008 2718

十字

  • ? 9768 2628
  • ? 9769 2629
  • ? 10013 271D
  • ? 10014 271E
  • ? 10015 271F
  • ? 10016 2720
  • ? 10010 271A
  • 8224 2020
  • ? 10018 2722
  • ? 10020 2724
  • ? 10019 2723
  • ? 10021 2725

星星、星号、雪花

  • 9733 2605
  • ? 10029 272D
  • ? 10030 272E
  • 9734 2606
  • ? 10026 272A
  • ? 10017 2721
  • ? 10031 272F
  • ? 10037 2735
  • ? 10038 2736
  • ? 10040 2738
  • ? 10041 2739
  • ? 10042 273A
  • ? 10033 2731
  • ? 10034 2732
  • ? 10036 2734
  • ? 10035 2733
  • ? 10043 273B
  • ? 10045 273D
  • ? 10059 274B
  • ? 10054 2746
  • ? 10052 2744
  • ? 10053 2745

杂项

  • ? 9787 263B
  • ? 9786 263A
  • ? 9785 2639
  • ? 9993 2709
  • ? 9742 260E
  • ? 9743 260F
  • ? 9990 2706
  • ? 65533 FFFD
  • ? 9729 2601
  • ? 9730 2602
  • ? 10052 2744
  • ? 9731 2603
  • ? 10056 2748
  • ? 10047 273F
  • ? 10048 2740
  • ? 10049 2741
  • ? 9752 2618
  • ? 10086 2766
  • ? 9749 9749
  • ? 10050 2742
  • ? 9765 2625
  • ? 9774 262E
  • ? 9775 262F
  • ? 9770 262A
  • ? 9764 2624
  • ? 9988 2704
  • ? 9986 2702
  • ? 9784 2638
  • ? 9875 2693
  • ? 9763 2623
  • ? 9888 26A0
  • ? 9889 26A1
  • ? 9762 2622
  • ? 9851 267B
  • ? 9855 267F
  • ? 9760 2620

手型、铅笔、笔

  • ? 9756 261C
  • ? 9758 261E
  • ? 9757 261D
  • ? 9759 261F
  • ? 9996 270C
  • ? 9997 270D
  • ? 9998 270E
  • ? 10000 2710
  • ? 9999 270F
  • ? 10001 2711
  • ? 10002 2712

天空、植物

  • ? 9789 263D
  • ? 9790 263E
  • 9794 2642
  • 9792 2640
  • ? 9791 263F
  • ? 9793 2641
  • ? 9795 2643
  • ? 9796 2644
  • ? 9797 2645
  • ? 9798 2646
  • ? 9799 2647

星座

  • ? 9800 2648
  • ? 9801 2649
  • ? 9802 264A
  • ? 9803 264B
  • ? 9804 264C
  • ? 9805 264D
  • ? 9806 264E
  • ? 9807 264F
  • ? 9809 2651
  • ? 9810 2652
  • ? 9811 2653

象棋,扑克牌

  • ? 9818 265A
  • ? 9819 265B
  • ? 9820 265C
  • ? 9821 265D
  • ? 9822 265E
  • ? 9823 265F
  • ? 9812 2654
  • ? 9813 2655
  • ? 9814 2656
  • ? 9815 2657
  • ? 9816 2658
  • ? 9817 2659
  • 9824 2660
  • 9827 2663
  • 9829 2665
  • 9830 2666
  • ? 9828 2664
  • ? 9831 2667
  • ? 9825 2661
  • ? 9826 2662

希腊字母

  • Α 913 0391
  • Β 914 0392
  • Γ 915 0393
  • Δ 916 0394
  • Ε 917 0395
  • Ζ 918 0396
  • Η 919 0397
  • Θ 920 0398
  • Ι 921 0399
  • Κ 922 039A
  • Λ 923 039B
  • Μ 924 039C
  • Ν 925 039D
  • Ξ 926 039E
  • Ο 927 039F
  • Π 928 03A0
  • Ρ 929 03A1
  • Σ 931 03A3
  • Τ 932 03A4
  • Υ 933 03A5
  • Φ 934 03A6
  • Χ 935 03A7
  • Ψ 936 03A8
  • Ω 937 03A9

中文译文来自qianduan.net

 

来源于 HTML特殊字符大全 | 帕兰映像

以上是关于为啥html,xml的特殊符号转义不用斜杠,而要用& quot ;这样的奇怪形式?的主要内容,如果未能解决你的问题,请参考以下文章

HTML/XML转义字符对照表(建议收藏)

Spring特殊字符处理

js转义特别符号

C#中怎么把&符号写入XML,不是转义&这种形式的,只插入一个&符号?

Python转义字符

linux命令学习-引用符号(反斜杠,单引号'',双引号"")