Help:特殊字符
出自 MBA智库百科(https://wiki.mbalib.com/)
目录 |
在维基中,所有的项目都使用了Unicode(UTF-8)字符编码。
- Unicode(UTF-8)
- 各字符字节数可变
- 特殊字符,包括中日韩统一表意文字,都可以在网页和编辑框里正常显示。另外可以使用多字符代码,且不会在编辑框里被自动转换。
- ISO 8859-1
- 各字符仅一字节
- 在此字符集中不可用的特殊字符以多字符代码形式储存,它们通常有两到三个等价表示,例如:€,可表示为€,或€,或€。
- 包含最常见的特殊字符,比如é,也可表示为é,但这样没必要。
注意到Special:Export输出时使用UTF-8,无论数据库使用的是哪种编码。
若想了解某维基使用的编码系统,打开浏览器的“察看源代码”,找到类似字符:
<meta http-equiv="Content-type" content="text/html; charset=iso-8859-1" />
或
<meta http-equiv="Content-type" content="text/html; charset=utf-8" />
许多不在标准ASCII表中的字符也许对维基十分重要。有四种方法输入非ASCII字符:
- 使用编辑框下的特殊字符以插入文章。但有可能部分字符无法显示。
- 直接使用特种键盘,或者由系统提供的字符映射程序。在ISO-8859-1的维基将把字符集以外的字符转换为HTML数字字符实体(见下)。
- 使用HTML命名字符实体引用,比如
à
。这对于不同的字符集来说都能非常正确的表达指定字符,即使无法显示。不过可能引起搜索的困难(见下)。 - 使用HTML数字字符引用,比如
¡
。这是输入未命名实体Unicode值的唯一办法,比如土耳其字符。代码点128到159在ISO-8859-1和Unicode中都未使用,因此其间的字符引用是错误的,“非法的”,会引起多种问题。
总的来说,西欧语言一般不出现问题。
为了搜索的成功,特殊字符最好不用字符实体引用,否则搜索会出现问题。比如“Odiliënberg”,服务器只会以“Odili”、“euml”或“nberg”进行搜索。这其实是个bug,应该被修正。参见:Help:搜索。
在编辑框 | 在数据库和输出 |
S | S |
Sx | Ŝ |
Sxx | Sx |
Sxxx | Ŝx |
Sxxxx | Sxx |
Sxxxxx | Ŝxx |
Mediawiki软件可以设置世界语使用UTF-8编码作为储存和显示编码。但在编辑时,这些文字被转换为容易以标准键盘编辑的格式。
有这种特性的字符有:Ĉ,Ĝ,Ĥ,Ĵ,Ŝ,Ŭ,ĉ,ĝ,ĥ,ĵ,ŝ,ŭ。你可以用特种键盘直接键入这些字符,不过保存后在编辑时你还是会看见Sx。这叫做“x-加帽拼写”。如果想输入在这些字符或它们的不发音形式(A,G,H,J,S,U,c,g,h,j,s,u)后的“x”,则应输入显示出来的“x”两倍的“x”。
有些浏览器会对编辑框里的文字作一些手脚。最常见的行为就是将文字转换为本地的编码形式。用户将不得不手动转换回来。这也常造成特殊字符变成问号(在某些浏览器变成了音译文字!)。
这种常见浏览器使用Mac OS Roman编码系统。它几乎把所有的Unicode字符变成问号,部分ISO-8859-1也不能幸免遇难(特别是¤ ¦ ¹ ² ³ ¼ ½ ¾ Ð × Ý Þ ð ý þ 和软连字符)。所以用它浏览维基百科会造成极大的不便。
问题与上者类似。
正常浏览器: 数据库和编辑框 |
异常浏览器: 编辑框 |
œ | œ | œ | œ |
œ | œ |
在英文维基变为UTF-8之后,跨维基机器人就开始替换HTML实体为Unicode字符,但对于有些浏览器来说,不正常的Unicode字符越来越多。工作区就是为此设计,以保证那些浏览器能安全的进行编辑,当然仅当Mediawiki知道哪些浏览器是有问题的。
列在$wgBrowserBlackList(一组正则表达式,匹配User-Agent字符串)的浏览器被提供一个特别的编辑框。十六进制HTML实体有多余的前导0,非ASCII字符在编辑框显示为无前导0的十六进制HTML实体。
当前IE Mac和一些版本的Linux Netscape 4.x浏览器在黑名单之中,不过这能解决一些问题。
各种浏览器对Unicode的支持程度参差不齐。其中一个问题便是,IE对字体的处理是:使用在注册表中的设置,却不对可能显示成问号的字符的字体进行搜索。这就造成IE有时必须使用特定字体。在Windows象形文字列表中的字符能够不用特殊手段安全使用。
<font face="Arial Unicode MS">...</font>可能只在用户有这种字体时才正常显示。
比如<hiero>P2</hiero>得到<hiero>P2</hiero>。
这与浏览器的编码系统无关,因为这是图像。
当然也可用Unicode来表示它们,不过几乎没有浏览器支持。
当用户使用下划链接时,且链接有特殊字符时,结果可能有歧义。
链接 + − < > ⊂ ⊃ 得到 + − < > ⊂ ⊃,也许看起来像± = ≤ ≥ ⊆ ⊇。这样最好单独给出链接。
- http://www.unicode.org/charts/ Unicode字符表,仅十六进制数,PDF文件显示所有浏览器不能显示的字符(英文)。
- http://www.unicode.org/help/display_problems.html 在大多数平台上启用Unicode的帮助(英文)。
- 1到65535Unicode字符,十进制。