程序字符集问题

    最近两天一直纠结一个问题,由字符集引起的字符乱码问题。

    程序的结构是,客户端从数据库服务器获取数据,然后将数据打包成xml发送出去。

    

    但是在生成XML的时候,数据中的中文字符全都没有,然后通过一步步的调试输出,发现在调用Xcercs的transcode后,汉字全部都返回了空串;作为一个有着一定使用历史的第三方开源库,显然不太可能存在问题,可是问题到了这,只有想其他存在的可能。于是尝试了将本地Linux系统的编码调整为和数据库服务器一致,但是仍然无法解决问题。


    最后纠结了好几天,才想到看看程序这边打印出来的编码是什么样的。


    于是,在程序中加入了以下的代码:

	char* locName = setlocale(LC_ALL,NULL);
	printf("\n-%s-\n",locName);

    获取了本地程序集的编码方式,和数据库服务器的编码方式的确不同。

    添加以下代码:

	setlocale(LC_ALL,"zh_CN.GBK");

    重新运行生成,没有问题了,乱码就此解决。

    总结,大多数的这种问题都是由于编码方式不一致引起的,可以通过以上的方法进行确定,定位问题后,进行相应的解决。



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值