喔,似乎编码问题很容易被解决,也很容易造成误解,尤其是在不同系统交互的时候,特别是当传递的数据中包含中文的时候。

在中文的编码上有太多的差异,有的系统喜欢用GB2312,有的系统却采用UTF-8。

还有在网页上,Content-Type也有多种写法,有的爱好GB2312,其他的喜欢UTF-8等等。

很多系统中会用到MD5哈希进行数据校验,尤其是提供接口的时候,当这个时候编码不相同的话,就会出现很多头疼的问题,如果找不到原因,你或许还会埋怨这谁发明的C#语言,竟然MD5算法的结果不一样?!

当然,如果在接口间传递的数据不是非英文的话,一般是不会出现的,但是成产环境中,非英文的数据是很多的。

因此我们需要找到真正的解决办法来融合不同的系统。这里举一个小例子。

有一个第三方接口以HTTP方式提供,程序是用JAVA写的,提供的数据是GB2312编码的xml文件,现在你要用.NET来封装这个接口的实现,其中有些方法需要中文数据和MD5哈希校验,而你的系统是UTF-8编码。

找到问题在于编码的不同,就已经解决了90%,剩下的就只有需要一个算法了。

 

 buffer.ToString();
}

 

编码问题其实真的很头疼。

相关文章: