Java项目跨服务中文乱码:从A服务中增加一条中文的记录,到了B服务的数据库中就变成了乱码

最近在做一个项目,有一个功能是这样的:A服务中有个通讯录功能,可以对通讯录进行增删改查的操作。但通讯录是存在B服务中的数据库的。那么问题出现了,从A服务中增加一条中文的记... 最近在做一个项目,有一个功能是这样的:A服务中有个通讯录功能,可以对通讯录进行增删改查的操作。但通讯录是存在B服务中的数据库的。那么问题出现了,从A服务中增加一条中文的记录,到了B服务的数据库中就变成了乱码,然后在B服务的页面输出通讯录时,因为它没有做转码处理,所以显示是乱码。该怎么做能让A服务储存进去的中文在B服务的数据库中不是乱码呢?(PS:B服务数据库中的那个乱码字段是UTF-8编码,A服务存的时候该字段也是UTF-8编码的)谢谢。 展开
 我来答
huangxingA211
2014-11-17
知道答主
回答量:5
采纳率:0%
帮助的人:5.4万
展开全部
这个应该是你在A服务的中文就变成了乱码,这个需要你在A服务端就要将字体处理好,在前台使用UTF-8提交的中文必须使用URLDecoder.decode(str,“UTF-8”)进行转码再进行入库操作就不会有问题了
追问
不是,我调试模式监视过,我A服务中往B服务存的时候是中文,不是乱码。
叶青楼
2014-11-17 · 超过37用户采纳过TA的回答
知道小有建树答主
回答量:100
采纳率:0%
帮助的人:25.9万
展开全部
JSP吗?你可以在传进数据库之前打印出,看看是否是乱码,统一用UTF8:
页面三句:<%@ page contentType="text/html; charset=UTF-8" pageEncoding="UTF-8" language="java" import="java.sql.*" errorPage="" %>
<%request.setCharacterEncoding("UTF-8");%>(页面传值)
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
数据库链接(Mysql):private String uri="jdbc:mysql://localhost:3306/javaweb?useUnicode=true&characterEncoding=UTF-8";
数据库用的是什么?(Mysql):my.ini中mysql字段:default-character-set=utf8,mysqld字段character-set-server=gbk(这句是mysql有的,好像它不支持utf8显示中文);建立数据库和表的时候都指明编码为utf8
其他的数据库应该是类似的,编码问题有很多处,一旦一个地方的编码不同意都可能出现乱码
本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式