关于各种语言编码(GBK,euc-kr,UTF-7...)转UTF-8的问题.望指教,谢谢
做项目时遇到一个麻烦事情.由于客户提交上来的文本文件可能是采用各种各样的编码,比如:台湾用户用BIG5,大陆用GB2312,韩国用户euc-kr,小日本用户Shift-JIS.
在处理用户提交上来的文件时,就需要将这些不同编码的文件中的内容转为UTF-8(没办法,天天在吼全球化).于是就遇到难题了,System.Text只有UTF-8,Unicode,UTF-7,UTF-32,ASCII的解码类.没了内置的支持,解码一些文件很变得困难了,至少对于我来讲是困难的.
偶然想到一个笨办法(牛刀杀蚂蚁),还仅适用于页面类(VB.NET):
me.Session.CodePage = 936'这个数字根据客户选用的语言来得,比如如果用户是韩国人,这个值可能是51949
dim s as string = Me.Response.ContentEncoding.GetChars(_ByteArray)'_ByteArray是一个包含用户上传文本文件内容的Byte数组
me.Session.CodePage = 65001'重新把页面使用的语言类型转为UTF-8
这个局限性太大...性能也不会好.或许我可以写个类专门包含各种语言解码类(System.Text.Decoder).并在项目启动时初始化它们.但这可能需要占去一个可观的内存...不太划算.
抓了一早上头发..实再想不出其它办法.望各位高手指教,谢谢.100分