2009-07-16 37 views
4

CharUnicodeInfo.GetUnicodeCategory文檔說:的Unicode版本的.NET

注意CharUnicodeInfo.GetUnicodeCategory時通過特定的字符作爲參數並不總是返回相同的UnicodeCategory值作爲Char.GetUnicodeCategory方法。

CharUnicodeInfo.GetUnicodeCategory方法是旨在反映當前版本的Unicode標準。相反,儘管Char.GetUnicodeCategory方法通常反映了Unicode標準的當前版本,但它可能會基於標準的先前版本返回一個字符的類別,或者它可能會返回與當前標準不同的類別以保持向後兼容性。

那麼,哪個版本的Unicode標準反映了CharUnicodeInfo.GetUnicodeCategoryChar.GetUnicodeCategory哪個版本的.NET Framework?

回答

4

String Class狀態的文檔的Unicode版本.net框架4和4.5符合:

.NET Framework 4

在.NET Framework 4,分選,套管,歸一化, Unicode字符信息與Windows 7同步並符合Unicode 5.1標準。

.NET Framework 4.5

在Windows 8操作系統上運行,分揀,套管,歸一化,和Unicode字符信息在.NET Framework 4.5符合的Unicode標準6.0。在其他操作系統上,它符合Unicode 5.0標準。

-1

This頁面有來自微軟的Shawn Steele的維基評論,我認爲應該解釋爲什麼使用CharUnicodeInfo是首選。

+0

這不是問題。 – dtb 2009-07-16 02:50:21

+0

但那就是它導致。 Unicode版本在無法正常工作時如何處理。你有沒有嘗試用一個例子字符(非英文)來找到差異呢? – shahkalpesh 2009-07-16 03:03:01

+1

例如,在Unicode版本5.1.0中添加了字符''\ u0C58'(http://www.fileformat.info/info/unicode/char/0c58/index.htm),並添加了類別* Letter,Other * 。 「CharUnicodeInfo.GetUnicodeCategory」方法旨在反映Unicode標準的當前版本。「 但是`CharUnicodeInfo.GetUnicodeCategory`返回`UnicodeCategory.OtherNotAssigned`。所以它**不反映當前的Unicode版本5.1.0。 **它反映了哪個版本**? – dtb 2009-07-16 16:05:04

2

據我所知,unicode版本不存儲。字符查找是通過將字符信息存儲在mscorlib.dll中名爲「charinfo.nlp」的嵌入資源中實現的,並且在內部用作查找表。在這個查找表數據的頭部有一個「version」屬性,但是它在二進制數據(偏移0x20)中是「0」,所以我不確定這是什麼版本,或者它是否沒有實現。

1

由於Michael Kaplan states

由Unicode 協會發布的版本。

因爲真的沒有確切的 答案這個非常具體的 問題。答案總是完全取決於 上的[通常是一個具體的 問題的人問的是 尋找答案

那麼到底禮貌的回答是IT 取決於你是什麼意思。 CAN YOU ELABORATE A BIT?