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字元,十進位。