请教linux乱码

zParadise 2011-03-08 11:00:42
我在服务器linux下写了一个简单的epoll,客户端win下发送中文数据,在linux上显示的时候是乱码,显示不了中文,改了编码规则可还是接收不到中文数据,但是如果不用socket,调整输入法以后是可以键入中文的,特来请教。望各位大侠指点。可能说的不是很清楚,在线等,求教。谢谢。
...全文
226 25 打赏 收藏 转发到动态 举报
写回复
用AI写文章
25 条回复
切换为时间正序
请发表友善的回复…
发表回复
gettext 2011-03-10
  • 打赏
  • 举报
回复
"如果不用socket,调整输入法以后是可以键入中文的“

看样子好像是你自己程序的问题。
zParadise 2011-03-10
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 justkk 的回复:]
这时export LANG=zh_CN.GBK
再试试看呢
[/Quote]
大哥,我试了一下还是不行
justkk 2011-03-10
  • 打赏
  • 举报
回复
这时export LANG=zh_CN.GBK
再试试看呢
zParadise 2011-03-10
  • 打赏
  • 举报
回复
[Quote=引用 20 楼 justkk 的回复:]
如果不要程序传输,直接ftp上传到linux主机,是否能查看?
[/Quote]
我用vi看了一下源代码,里面的中文也是乱码
  • 打赏
  • 举报
回复
其实就是一个编码的问题,试想你把windows下的文本文件用winrar压缩以后再传输过去,然后再Linux端再用linux rar解压,这时候你应该可以不用考虑传输中途传输的是什么格式吧?
这种情况下如果在Linux下显示的是乱码,那就是正常的。如果你在Windows下压缩该文本文件之前用UtraEdit的工具栏选择编码格式转换成UTF-8,然后再传输给Linux,解压后显示肯定是正常的。

Windows下面中文系统是GB2312的编码,Linux下是UTF-8。
justkk 2011-03-10
  • 打赏
  • 举报
回复
如果不要程序传输,直接ftp上传到linux主机,是否能查看?
zParadise 2011-03-10
  • 打赏
  • 举报
回复
[Quote=引用 18 楼 gettext 的回复:]
"如果不用socket,调整输入法以后是可以键入中文的“

看样子好像是你自己程序的问题。
[/Quote]
恩,我也觉得,但是不知道如何修改,还请各位老大不吝赐教
zParadise 2011-03-10
  • 打赏
  • 举报
回复
换了好多方法,差了好多资料还是没解决,结贴吧。。。各位牛人如果知道解决方法可以继续跟帖告诉我,谢谢了
zParadise 2011-03-09
  • 打赏
  • 举报
回复
[Quote=引用 16 楼 wenxy1 的回复:]
终端里配置好中文字库.
#export LC_ALL=zh_CN.GB18030
[/Quote]
这种方法试过了,还是不行
Wenxy1 2011-03-09
  • 打赏
  • 举报
回复
终端里配置好中文字库.
#export LC_ALL=zh_CN.GB18030
zParadise 2011-03-09
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 jiazhen 的回复:]
引用 5 楼 lgxwqq111 的回复:
用iconv转换一下格式试试?


将传输的代码转换成目标平台的编码格式。
[/Quote]
编码格式改过了 还是不行
zParadise 2011-03-09
  • 打赏
  • 举报
回复
[Quote=引用 11 楼 justkk 的回复:]
试试iconv -f ISO88591 -t gbk yourfile > newfile
或者iconv -f ISO88591 -t utf8 yourfile > newfile
[/Quote]
大哥,用了你说的方法试了一下,第一个命令出现未知1406处的非法输入序列。第二个命令执行之后linux还是乱码,客户端win下原来没乱码,现在出现乱码。谢谢您。我也在尝试其他方法。加分希望大牛们能帮忙,谢谢
zParadise 2011-03-09
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 wzzww 的回复:]
中文乱码只有2种情况
1。你的Linux是否支持中文?是否安装了中文字体?
2。发送的编码格式是否与显示格式一致?windows多用ASCII,而Linux多用utf8。
[/Quote]
支持中文,可以输入中文的,但是用socket接收发送中文就显示不了。我也安装了中文字体。env|grep LANG看LANG=zh_CN.UTF-8。linux的代码我在notepad++上写的格式是ANSI,改成UTF-8也不行。发送端在vs2005上写的,应该是默认的unicode编码。
zParadise 2011-03-08
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 victortds 的回复:]
注意编码方式,可能是ASCII和UNICODE的转换问题
[/Quote]
epoll确实是ANSI格式,不知道具体怎么弄,能具体说一下吗,谢谢
victor 2011-03-08
  • 打赏
  • 举报
回复
注意编码方式,可能是ASCII和UNICODE的转换问题
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 lgxwqq111 的回复:]
用iconv转换一下格式试试?
[/Quote]

将传输的代码转换成目标平台的编码格式。
justkk 2011-03-08
  • 打赏
  • 举报
回复
试试iconv -f ISO88591 -t gbk yourfile > newfile
或者iconv -f ISO88591 -t utf8 yourfile > newfile
hslinux 2011-03-08
  • 打赏
  • 举报
回复
发送端字符编码使用Utf-8,发送的时候把utf-8数据转化成char,
接收端收到数据再把char转发成utf-8再显示。
无知者无谓 2011-03-08
  • 打赏
  • 举报
回复
中文乱码只有2种情况
1。你的Linux是否支持中文?是否安装了中文字体?
2。发送的编码格式是否与显示格式一致?windows多用ASCII,而Linux多用utf8。
zParadise 2011-03-08
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 lgxwqq111 的回复:]
用iconv转换一下格式试试?
[/Quote]
您能具体说说iconv函数怎么用吗?网上看了一下没明白,就知道是个编码转换函数
加载更多回复(5)

23,121

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧