2017-03-01 92 views
0

我想編碼,然後解碼包含多語言字符,其中語言,長度和字符定位(如索引8-10中的中文字符)未知的字符串。編碼和解碼多國語言字符串c#

甚至有可能有一個「通用」編碼器?或者一些知道如何解碼的算法?

搜索網絡只提出了一些解決方案,包括瞭解特殊字符的位置,以及哪種語言,我甚至不知道語言本身。

任何想法?

編輯: 例子:

「你好{中文}我{拉丁}生鏽」

其中包括英語,中國:一個由數種語言,如一串,拉丁語。

但是當我做

var test = ASCIIEncoding.ASCII.GetBytes(someStr); 

然後

ASCIIEncoding.ASCII.GetString(test) 

「特殊字符」(即非英語字符)轉換爲問號

+0

你所說的 「編碼」 是什麼意思?什麼情境使某些角色「特殊」?除了在給定的上下文中,沒有任何字符比任何其他字符都更加特殊(例如'漢'在URL中是特殊的,但在HTML中是特殊的)。 –

+0

你能提供一些例子嗎?目前還不清楚你的具體問題是什麼,你的目標是什麼。 –

+2

UTF16(和UTF8)是非常好的編碼,它支持您將使用的所有字符:-) – xanatos

回答

2

不要使用ASCII編碼,因爲它不應該處理同一個字符串中的多個語言字符。

使用Unicode來代替:

var test = UnicodeEncoding.Unicode.GetBytes(someStr); 
var test1 = UnicodeEncoding.Unicode.GetString(test); 
+0

哪一個更好? UnicodeEncoding或Encoding.UTF8.GetString? –

+1

@Tomer如果你的文本大部分都包含拉丁字符 - 那麼UTF8對你來說可能更好。 UnicodeEncoding.Unicode實際上是UTF16。 –