Chinaunix首页 | 论坛 | 博客
  • 博客访问: 437881
  • 博文数量: 126
  • 博客积分: 35
  • 博客等级: 民兵
  • 技术积分: 1262
  • 用 户 组: 普通用户
  • 注册时间: 2010-03-19 16:39
文章分类

全部博文(126)

文章存档

2017年(2)

2016年(20)

2015年(64)

2014年(24)

2013年(16)

我的朋友

分类: C/C++

2014-12-20 09:55:35


  1. [root@localhost bin]# locale
  2. LANG=zh_CN.GB18030
  3. LC_CTYPE="zh_CN.GB18030"
  4. LC_NUMERIC="zh_CN.GB18030"
  5. LC_TIME="zh_CN.GB18030"
  6. LC_COLLATE="zh_CN.GB18030"
  7. LC_MONETARY="zh_CN.GB18030"
  8. LC_MESSAGES="zh_CN.GB18030"
  9. LC_PAPER="zh_CN.GB18030"
  10. LC_NAME="zh_CN.GB18030"
  11. LC_ADDRESS="zh_CN.GB18030"
  12. LC_TELEPHONE="zh_CN.GB18030"
  13. LC_MEASUREMENT="zh_CN.GB18030"
  14. LC_IDENTIFICATION="zh_CN.GB18030"
  15. LC_ALL=

  1. [root@cdh-dn-2 bin]# locale
  2. LANG=en_US.UTF-8
  3. LC_CTYPE="en_US.UTF-8"
  4. LC_NUMERIC="en_US.UTF-8"
  5. LC_TIME="en_US.UTF-8"
  6. LC_COLLATE="en_US.UTF-8"
  7. LC_MONETARY="en_US.UTF-8"
  8. LC_MESSAGES="en_US.UTF-8"
  9. LC_PAPER="en_US.UTF-8"
  10. LC_NAME="en_US.UTF-8"
  11. LC_ADDRESS="en_US.UTF-8"
  12. LC_TELEPHONE="en_US.UTF-8"
  13. LC_MEASUREMENT="en_US.UTF-8"
  14. LC_IDENTIFICATION="en_US.UTF-8"
  15. LC_ALL=
以上是两台服务器的字符集设置,一台(A)是GB18030(GB2312->GBK->GB18030依次向下兼容),一台(B)是UTF-8。

程序使用了库里的一个锁无关环形队列类,该类中的出队方法里有注释:“极端情况:队列中只有一个元素,但是出队错误”
在A服务器上,一个元素入队,gdb调试出队方法的调用出,经常卡死或者报gdb内部错误。
在B服务器上,同样的代码、数据,没有错误。

疑似服务器字符集设置引起的问题,仅在此记录备忘,未严格验证。


【后记】后来在另外一台字符集为utf-8的服务器上也出现了类似的问题!怀疑是文件的编码有问题。

shell脚本使用iconv 批量改变文件编码

http://wuhuizhong.iteye.com/blog/1424132


结合file和iconv命令转换文件的字符编码类型


用iconv -f gbk -t utf8 -o file.dst file.src,把新添加的几个文件转换了格式,就没有卡死了。
一个程序里的文件格式如果有多种,很可能会导致gdb调试的时候卡死。

上述方法不一定一有效,尝试所有文件都dos2unix。

编码问题真让人头疼 o(︶︿︶)o 唉
阅读(1115) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~