2010-03-13 73 views
6

我只是想在Django項目中開發一個翻譯應用程序,它使具有特定權限的註冊用戶可以翻譯它出現在最新版本中的每條消息。對於所有常用語言,UTF-8足夠了嗎?

我的問題是,我應該使用這個翻譯應用程序中的數據庫表的字符集?看起來像一些歐洲語言字符不能存儲在UTF-8中?

+1

UTF-8是Unicode的編碼方案。所有的Unicode字符都可以用UTF-8編寫。 「它能夠代表Unicode標準中的任何字符」http://en.wikipedia.org/wiki/UTF-8。你在問什麼?如果UTF-8編碼所有Unicode字符? – 2010-03-13 15:38:22

+0

我很好奇......那是什麼歐洲語言的人物? – hop 2010-03-13 16:06:39

回答

24

看起來像一些歐洲語言字符不能存儲在UTF-8中?

不正確。 UTF-8可以存儲任意字符集,沒有任何限制,除了克林貢。 UTF-8是您的國際化一站式商店。如果字符有問題,它們很可能是編碼問題,或者缺少對用於顯示數據的字體的字符範圍的支持(儘管對於歐洲語言字符極不可能,但在查看時常見另請參閱this question

如果非西方字符集無法呈現,則可能是因爲用戶的內置字體沒有涵蓋該範圍的UTF-8。

更新:克林貢這的確不是official UTF-8部分:

尚未被列入統一(例如,Tengwar)或Unicode中,由於不符合納入一些現代的發明腳本缺少真實世界的使用(例如克林貢)在ConScript Unicode註冊表中列出,以及非官方的但廣泛使用的私用區域代碼分配。

但是,有一個volunteer project已私下分配給克林貢的代碼點F8D0-F8FF。 Gallery of Klingon characters

+0

如果有人爲Klingon字母表寫了一個包含Unicode代碼點的附錄,這也可以用UTF-8表示。或者你可以使用一個私人使用區域並製作映射到這些代碼點的字體。 – 2010-03-13 15:39:58

+2

@Williham已完成:Klingon(F8D0-F8FF)http://en.wikipedia.org/wiki/ConScript_Unicode_Registry – 2010-03-13 15:40:32

2

UTF-8可以用來表示所有的Unicode,所以它不會讓你表達所有的通用語言。它允許你表示全部語言。

如果看起來好像一些歐洲字符不起作用,那是一個編碼問題。