Socket的Java Client ,C Server 传输数据中文乱码

一个C写的Socket服务。需通过Java写的客户端去获取数据,取得的数据中出现了中文乱码问题。有没有什么办法?... 一个C写的Socket 服务。
需通过 Java写的客户端去获取数据,取得的数据中出现了中文乱码问题。
有没有什么办法?
展开
 我来答
yiwanfen
2009-11-04
知道答主
回答量:4
采纳率:0%
帮助的人:0
展开全部
java是unicode编码。一个字符是2位,十六个字节,c在本地的话,他会用本地的默认字符集,也就是gb2312或者gbk编码,这个编码是浮动的,8个或者12个,2着字符不兼容呀,解决就不知道了,我一般都是在client和server都用java的
星知魂
2009-11-04 · TA获得超过685个赞
知道小有建树答主
回答量:761
采纳率:0%
帮助的人:587万
展开全部
因为C和java的基本数据类型是有些区别的
像C中的char 和java 中的char 这些都要注意的。当然还有其他的要注意的,具体的就要看你的代码了
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
0华丽转身0
2009-11-04 · 超过11用户采纳过TA的回答
知道答主
回答量:65
采纳率:0%
帮助的人:0
展开全部
java 和c 用的编码方式不一样 。你传英文没问题,你传中文出乱码。
你就把得到的字符转下格式
String result = String(xxx.getBytes("iso8859-1"),"gb2312")
xxx 是你得到的字符,result 是转换后的结果。gb2312不行就试试gbk
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友dc81944bb
2009-11-04 · TA获得超过572个赞
知道小有建树答主
回答量:793
采纳率:0%
帮助的人:723万
展开全部
估计又是编码格式问题。接过的信息。强转一次吧
str=new String(str.getBytes("ISO8859-1"),"GBK");
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
我的酒窝儿
2009-11-04 · TA获得超过335个赞
知道小有建树答主
回答量:747
采纳率:0%
帮助的人:153万
展开全部
写一个过滤器 把客户端建成webproject
public class CharacterEncodingFilter implements Filter {
private FilterConfig config;
private String encoding = "utf-8";

public void destroy() {
System.out.println(config);
config = null;
}

public void doFilter(ServletRequest request, ServletResponse response,
FilterChain chain) throws IOException, ServletException {
request.setCharacterEncoding(encoding);
chain.doFilter(request, response);
}

public void init(FilterConfig config) throws ServletException {
this.config = config;
String s = config.getInitParameter("encoding");
if (s != null) {
encoding = s;
}
}
}
下边是web。xml里配置
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<welcome-file-list>
<welcome-file>index.jsp</welcome-file>
</welcome-file-list>

<filter>
<filter-name>EncodingFilter</filter-name>
<filter-class>com.ly.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>EncodingFilter </filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
要是还布行就hi百度一下我
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式