Mono环境下不支持Encoding.GetEncoding("GB2312")的解决方法

本文详细介绍了如何解决mono-locale-extras缺失导致的编码问题,并提供了安装该组件的具体步骤。通过安装mono-locale-extras,可以解决在使用不同编码时遇到的兼容性问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

转载自:http://www.cnblogs.com/muse/articles/1756821.html

mono-locale-extras

可以先写一句测试代码:

 

EncodingInfo[] enc = Encoding.GetEncodings();

在这行上设置一个断点,可以浏览到所有可用的编码名称/CodePage。这时看到936——也就是GB2312的的CodePage被标明为未实现的。

启动YaST安装软件,在“全部”组里检索mono关键字,找到mono-locale-extras。文件列表如下:

/usr/lib/mono/1.0

I18N.CJK.dll, I18N.MidEast.dll, I18N.Other.dll, I18N.Rare.dll
/usr/lib/mono/2.0
I18N.CJK.dll, I18N.MidEast.dll, I18N.Other.dll, I18N.Rare.dll
/usr/lib/mono/gac/I18N.CJK/1.0.5000.0__0738eb9f132ed756
I18N.CJK.dll, I18N.CJK.dll.mdb
/usr/lib/mono/gac/I18N.CJK/2.0.0.0__0738eb9f132ed756
I18N.CJK.dll, I18N.CJK.dll.mdb
/usr/lib/mono/gac/I18N.MidEast/1.0.5000.0__0738eb9f132ed756
I18N.MidEast.dll, I18N.MidEast.dll.mdb
/usr/lib/mono/gac/I18N.MidEast/2.0.0.0__0738eb9f132ed756
I18N.MidEast.dll, I18N.MidEast.dll.mdb
/usr/lib/mono/gac/I18N.Other/1.0.5000.0__0738eb9f132ed756
I18N.Other.dll, I18N.Other.dll.mdb
/usr/lib/mono/gac/I18N.Other/2.0.0.0__0738eb9f132ed756
I18N.Other.dll, I18N.Other.dll.mdb
/usr/lib/mono/gac/I18N.Rare/1.0.5000.0__0738eb9f132ed756
I18N.Rare.dll, I18N.Rare.dll.mdb
/usr/lib/mono/gac/I18N.Rare/2.0.0.0__0738eb9f132ed756
I18N.Rare.dll, I18N.Rare.dll.mdb

选中mono-locale-extras后点击Install,一路next就可以了。有依赖关系的软件包会自动安装。当你在mono网站下载安装mono开发环境的时候,安装软件会自动在软件管理器中添加mono的源。如果没有找到mono-locale-extras,确认一下是否已经添加了以下软件安装源:

MonoDevelop : http://monodevelop.com/files/Linux/releases/openSUSE_11.2/

mono-stable : http://ftp.novell.com/pub/mono/download-stable/openSUSE_11.2

 

然后再看一下上面那行代码的断点时候的结果。Have funs。

------------------------------------------------------------------

补充一点:如果仅仅是通用代码的话并无什问题。如果将使用了locale编码的对象序列化存储后,在win平台下反序列化的时候,是无法将其反序列化的。也就是说,虽然代码是一致的,但其实使用的是另外的程序集在实现这些代码。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值