最近在使用CentOS 7 进行Mono测试的时候,发现好多异常情况,其中程序里面有用到GBK编码,然后运行的时候就报错了,错误码具体如下:
WARNING: The runtime version supported by this application is unavailable.
Using default runtime: v4.0.30319
Unhandled Exception:
System.TypeInitializationException: The type initializer for 'DAHUASDK.DHClient' threw an exception. ---> System.NotSupportedException: Encoding 936 data could not be found. Make sure you have correct international codeset assembly installed and enabled.
at System.Text.Encoding.GetEncoding (System.Int32 codepage) [0x0025f] in <dca3b561b8ad4f9fb10141d81b39ff45>:0
at DAHUASDK.DHClient..cctor () [0x0000c] in <3ba3d1a18b7e4126942cbe57085c9097>:0
--- End of inner exception stack trace ---
at ITC.Form1..ctor () [0x0002f] in <3ba3d1a18b7e4126942cbe57085c9097>:0
at (wrapper remoting-invoke-with-check) ITC.Form1:.ctor ()
at ITC.Program.Main () [0x0000e] in <3ba3d1a18b7e4126942cbe57085c9097>:0
[ERROR] FATAL UNHANDLED EXCEPTION: System.TypeInitializationException: The type initializer for 'DAHUASDK.DHClient' threw an exception. ---> System.NotSupportedException: Encoding 936 data could not be found. Make sure you have correct international codeset assembly installed and enabled.
at System.Text.Encoding.GetEncoding (System.Int32 codepage) [0x0025f] in <dca3b561b8ad4f9fb10141d81b39ff45>:0
at DAHUASDK.DHClient..cctor () [0x0000c] in <3ba3d1a18b7e4126942cbe57085c9097>:0
--- End of inner exception stack trace ---
at ITC.Form1..ctor () [0x0002f] in <3ba3d1a18b7e4126942cbe57085c9097>:0
at (wrapper remoting-invoke-with-check) ITC.Form1:.ctor ()
at ITC.Program.Main () [0x0000e] in <3ba3d1a18b7e4126942cbe57085c9097>:0
处理方法
1, 应该首先locale -a看有没有安装gbk
2, 没安装的话需要先安装gbk编码
3, 然后再安装mono-locale-extras
locale -a
yum install -y mono-locale-extras