英文系统下传输中文字符的问题!
2011-07-08 10:10
316 查看
1. 首先大家都知道,在英文系统下,是无法识别中文文件夹下的东西。如把安装包放在中文文件夹下,然后点击安装程序,是无法执行的。
2. 在中文系统下传输中文字符是没有问题的。
一般网络传输都用的是需要把字符转换成bytes: byte[] temparray = System.Text.Encoding.Default.GetBytes(fileName);
其中fileName中是中文字符串。System.Text.Encoding.Default.是获取操作系统的当前ASNI代码页的编码。在中文系统下是OK的。
但在英文系统下,获取默认的编码不是gb2312,这样传输中文字符就会有异常中断,或者是跳过不执行有中文字符的传输,
这里我们需要在代码中强制用gb2312来处理这些转换,这样就适合中英文系统的传输,具体修改的代码如下:
Encoding gb;
gb = Encoding.GetEncoding("gb2312");
byte[] temparray = gb.GetBytes(fileName);
这样就可以再英文系统下传输中文字符,不会有任何问题。如果不想再代码中修改,还是想用System.Text.Encoding.Default....这样的话
可以再电脑的配置中改,把当前电脑的默认编码改成GB2312一样可以。
3.另外还有一点,在中文简体系统下显示繁体会不正常(需要在繁体系统中才能正常显示),大多数字体不正常,情况是有粗有细,
很少的字体(如宋体)能改为繁体后正常显示。
2. 在中文系统下传输中文字符是没有问题的。
一般网络传输都用的是需要把字符转换成bytes: byte[] temparray = System.Text.Encoding.Default.GetBytes(fileName);
其中fileName中是中文字符串。System.Text.Encoding.Default.是获取操作系统的当前ASNI代码页的编码。在中文系统下是OK的。
但在英文系统下,获取默认的编码不是gb2312,这样传输中文字符就会有异常中断,或者是跳过不执行有中文字符的传输,
这里我们需要在代码中强制用gb2312来处理这些转换,这样就适合中英文系统的传输,具体修改的代码如下:
Encoding gb;
gb = Encoding.GetEncoding("gb2312");
byte[] temparray = gb.GetBytes(fileName);
这样就可以再英文系统下传输中文字符,不会有任何问题。如果不想再代码中修改,还是想用System.Text.Encoding.Default....这样的话
可以再电脑的配置中改,把当前电脑的默认编码改成GB2312一样可以。
3.另外还有一点,在中文简体系统下显示繁体会不正常(需要在繁体系统中才能正常显示),大多数字体不正常,情况是有粗有细,
很少的字体(如宋体)能改为繁体后正常显示。
相关文章推荐
- SQL Server字符集问题 英文系统和中文系统不同
- 系统在英文状态下调用 MultiByteToWideChar 中文乱码问题
- 英文系统中文乱码问题
- ubuntu 纯字符系统下中文乱码问题
- UILable 中文加上英文或者其他非中文字符自动换行的问题
- 英文XP系统的中文显示问题
- 在英文系统某些软件中文乱码问题
- Qt5下socket传输中文字符乱码的问题
- 解决TextView长按(复制,剪切,粘贴等)显示英文问题(系统语言为中文)
- Ubuntu英文系统中文字体问题
- 关于属性传输中文的编码字符问题
- jQuery Uploadify上传插件使用中的问题 中文字符文件名转英文
- All About JAVA 关于英文服务器下输出含有中文字符文件乱码的问题
- UILable“中文”加上“英文或者其他非中文字符”自动换行的问题
- 英文系统 中 中文成了乱码问题
- 英文系统 SQL SERVER 插入中文变成乱码的问题
- ubuntu 纯字符系统下中文乱码问题
- 英文Ubuntu系统中skype输入中文问题
- Java.IO.FileInputStream-FileOutputStream.中文字符与英文字符
- C#从剪贴板获取HTML格式内容含中文字符出现的问题和解决方法