"使用說明:特殊字符" 修訂間的差異
(新页面: <div class="boilerplate metadata" style="background-color: #f3f9ff; margin: 1em 2.5% 0 2.5%; padding: 0 10px; border: 1px solid #aaa;">'''技術問題:'''<small>由於一些技術限制...) |
(無差異)
|
於 2008年9月2日 (二) 22:13 的最新修訂
目錄
字符編碼系統
在維基中,所有的項目都使用了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的IE
這種常見瀏覽器使用Mac OS Roman編碼系統。它幾乎把所有的Unicode字符變成問號,部分ISO-8859-1也不能幸免遇難(特別是¤ ¦ ¹ ² ³ ¼ ½ ¾ Ð × Ý Þ ð ý þ 和軟連字符)。所以用它瀏覽維基百科會造成極大的不便。
Netscape 4.x
問題與上者類似。
工作區
正常瀏覽器: 數據庫和編輯框 |
異常瀏覽器: 編輯框 |
œ | œ | œ | œ |
œ | œ |
在英文維基變為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字符,十進制。