由字符集编码引起的错误

在asp.net中由于vs开发环境统一了字符集的编码,所以我们很少碰到字符集造成的错误。但是在我现在的项目中碰到了。我们这个项目通过vss进行源代码管理,我使用vs2008进行开发,我同事使用vs2005进行开发。由于项目时间紧张,页面的美化工作和功能的开发同步进行,美工做完页面美化工作就讲切好的html代码给我们。但是我们在套去css样式表的时候,发现有的样式能够生效,有的样式不能生效。百思不得其解。在网上也找了很多方法,如清空ie缓存等,但是仍然没有解决。情况现在很严重了,所有的套取页面的工作都在这个地方停住了,甚至功能的开发也不能继续进行下去。我尝试着改变css的样式配置,发现设置字体等样式可以适用,但是背景色和背景图片怎么改,都不能适应,说明了不是由于客户端造成的。然后看css样式表文件的编码,发现是GB2312的,尝试着将编码改成了Unicode,发现样式表能够适用。事后分析原因,发现我同事使用的vs2005默认创建的文件是以GB2312编码的,我这边使用的VS2008默认的却是Unicode,这样造成了两种字符集的不统一。

这还不是第一次碰到字符集引起的问题。在上一个项目中,我们有一个js文件也是GB2312编码,结果运行到js函数的时候总是报某某未定义的错误,改成Unicode就正常了

昨天帮一个网上的朋友解决VC.net中的链接错误,他引入了一个dll,但是生成时,总是报链接错误,我以为是没有正确的加载dll库,结果也是字符集造成的错误,在vs.net的工程属性-配置属性-常规-字符集中选择修改为多字节字符集就链接成功。

我研究过一段时间Java,觉得在Java中字符集的问题是非常麻烦的问题,但没有想到在.net中也出现了这样或那样的问题,听原来的项目经理跟我说过,字符集也就是国际化本地化这一块是最复杂,最麻烦的问题,当时没有感觉,现在终于体会到了。所以我们在.net开发中,不要简单的将字符串变量和中文字符进行比较,说不定你的cs文件的编码格式不配套,而导致你的中文字符编程了乱码,那么你的条件判断始终为不匹配的。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值