编码和解码多国语言字符串c#

问题描述:

我想编码,然后解码包含多语言字符,其中语言,长度和字符定位(如索引8-10中的中文字符)未知的字符串。编码和解码多国语言字符串c#

甚至有可能有一个“通用”编码器?或者一些知道如何解码的算法?

搜索网络只提出了一些解决方案,包括了解特殊字符的位置,以及哪种语言,我甚至不知道语言本身。

任何想法?

编辑: 例子:

“你好{中文}我{拉丁}生锈”

其中包括英语,中国:一个由数种语言,如一串,拉丁语。

但是当我做

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

然后

ASCIIEncoding.ASCII.GetString(test) 

“特殊字符”(即非英语字符)转换为问号

+0

你所说的 “编码” 是什么意思?什么情境使某些角色“特殊”?除了在给定的上下文中,没有任何字符比任何其他字符都更加特殊(例如'汉'在URL中是特殊的,但在HTML中是特殊的)。 –

+0

你能提供一些例子吗?目前还不清楚你的具体问题是什么,你的目标是什么。 –

+2

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

不要使用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。 –