问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

java string乱码问题

发布网友 发布时间:2022-04-23 13:49

我来回答

3个回答

热心网友 时间:2023-07-12 11:34

看了你的描述:

转换后成 '[C@1b8ee96'

这个不是乱码,是Java的hashCode值,即对象的内存地址,产生原因是:

String sql1= " '"+id+"'";  做字符串拼接时,id是一个对象

java在做字符串拼接时,会调用toString方法,而toString默认返回的是hashcode


id的是个数组,什么类型的,包括String sql= " '"+id+"'"; 你想拼成一个怎样的sql语句


int [] a = {1,2,3,4};

System.out.println(Arrays.toString(a));   // 数组变字符串

供你参考,因为要拼sql需要额外处理


String ss = "3703731197270270";
char[] id = ss.toCharArray();
String idStr = Arrays.toString(id);
idStr = idStr.substring(1).substring(0, idStr.length() - 2);
String sql = " '" + idStr + "'";
System.out.println(sql);
String sql1 = "insert into weibo value ('"  +sql +"')"
System.out.println(sql1);

看看合不合适

热心网友 时间:2023-07-12 11:35


选择GBK或者UTF-8,试一试

希望采纳!

追问还是那样。。
我准备用mysql,
语句String sql1= " '"+id+"'";
id原来是
3703731197270270
转换后成 '[C@1b8ee96',
刚刚有大神说是变成了object类型,不知道怎么解决,数据库也是乱码

追答编写java web的程序,不可避免都要处理编码问题,最常见的问题就是中文乱码
大概的思路就是重新编码为gbk或者gb2312,分两种情况
一是get和post形式
二是AJax 形式
第一种:GET和POST,取决于你的页面编码,如果你的页面编码为iso8859_1
使用:String str= new String(req.getParameter("str").toString().getBytes("iso8859_1"), "GBK");
或者 String str= new String(req.getParameter("str").toString().getBytes("iso8859_1"), "GB2312");
但是,这里要注意,必须保证你的页面编码也是iso8859_1的,因为,上面的代码的意思是先将你的字符串变为iso8859_1字节流,
然后再转化为GBK编码,如果你页面传过来的编码是utf-8,那么按照上面的方法就会出现:???乱码
你页面是utf-8的,就要使用如下编码:
String str= new String(req.getParameter("str").toString().getBytes("utf-8"), "GBK");
或者 String str= new String(req.getParameter("str").toString().getBytes("utf-8"), "GB2312");
总之get post 原则很简单,页面什么编码就转化什么字节流转化编码

热心网友 时间:2023-07-12 11:35

把sql执行的地方都贴出来看看啊,,你这句话想做什么功能呀追问char[] id=new char[64];
id=ss.toCharArray();
String sql= " '"+id+"'";
String sql = "insert into weibo value ('" +id+"')";
id输出是3703731197270270

sql输出是[C@1b8ee96

追答id是动态的字符数组,你把它插到weibo里,weibo表有多少列,什么类型的?存的可能是数组的地址,,我也不太懂了

来自:求助得到的回答

java中字符乱码转化的问题

String s=request.getParameter("字段名");这里s会乱码,可以做如下转换 byte[] bytes=s.getBytes(" B当前的编码格式");String s=new String(bytes,"A的编码方式");这个时候s就正常了

Load Port、SMIF

威孚(苏州)半导体技术有限公司是一家专注生产、研发、销售晶圆传输设备整机模块(EFEM/SORTER)及核心零部件的高科技半导体公司。公司核心团队均拥有多年半导体行业从业经验,其中技术团队成员博士、硕士学历占比80%以上,依托丰富的软件底层...

java中文乱码,能说下string.getBytes()和new String()转码是,具体点...

1、Java中,【String.getBytes(String decode)】的方法,会根据指定的decode,编码返回某字符串在该编码下的byte数组表示,例如:byte[] b_gbk = "中".getBytes("GBK");byte[] b_utf8 = "中".getBytes("UTF-8");byte[] b_iso88591 = "中".getBytes("ISO8859-1")上面三行代码表示:分别...

Java 中解决日文乱码问题

try (BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream("filename.txt"), "Shift-JIS"))) { String str = "こんにちは"; writer.write(str); // 将字符串写入文件 } 当然,Java的内置工具可能无法满足所有复杂场景,这时,引入第三方库如Apache Commons Co...

java控制台输出乱码

产生原因:因为这个开源项目的默认字符编码不对,所以控制台的字符编码也自动变成了UTF-8,而键盘的输入流的默认格式是GBK格式,这样就造成了在GBK转UTF-8的过程中产生的奇数乱码错误(这个问题的解释可以在搜索引擎找到)。解决办法:1.在代码区域右键 -> run as -> run configurations -> common(右侧...

java String.charAt在linux下获取中文怎么是乱码

1、跟Eclipse的编码设定有关。具体路径:Windows->Preferences->General->Workspace中有一个设定项为“Text file encoding”,这个选项指定了保存源码时使用的编码方式。我看了一下在Window下选项为Default(GBK),Linux下该选项为Default(UTF-8),编码方式的不同,决定了“我是中国人”转换成Byte数据不同...

java中的输出string字符串,是乱码

同学,这个不是乱码。数组本身是没有toString()方法的。你这里有个默认的调用 Object.toString()Object中的toString()方法,是将传入的参数的类型名和摘要(字符串的hashcode的十六进制编码)返回。也就是说,你直接对数组使用了toString()方法,就会得到 一个Ljava.lang.String;@175d6ab 其中,Ljava....

java string 17 乱码 显示成问号 怎么去除

你从数据库获得的信息是以UTF-8进行编码的,当传递到Myeclipse下,获得的数据是以GB2312 编码的,即Myeclipse会用GB2312对数据库中以UTF-8 编码的字符再次编码,得到的肯定是乱码。解决方法,推荐的是使用String a = new String("数据库数据".getBytes("ISO8859-1"),"GB2312");将字符转换为GB2312...

java 中文乱码问题 utf-8和gbk的区别

System.out.println(new String("中国".getBytes("utf-8"), "gbk"));//将“中国“的gbk编码格式按着utf-8解析,或者反过来都会出现乱码。如浏览器当前为gbk编码,就以gbk编码格式来提交。 这本身是不会出现乱码的,问题就出在Web服务器接收数据的时候,HttpServletRequest在将客户端传来的数据转成...

在java中怎样处理中文乱码的问题?(有几种处理方式)

读取文件的时候如果是用的read方法(字节流),碰到中文输出就是乱码,然后存储的时候设置下编码为GBK或者是UTF-8形式即可,可以有效的解决乱码问题。可以通过BufferedReader 流的形式进行流缓存,之后通过readLine方法获取到缓存的内容。BufferedReader bre = null;try { String file = "D:/test/test.txt...

.java怎么把乱码转成文字

一、Java中文问题的由来 Java的内核和class文件是基于unicode的,这使Java程序具有良好的跨平台性,但也带来了一些中文乱码问题的麻烦。原因主要有两方面,Java和JSP文件本身编译时产生的乱码问题和Java程序于其他媒介交互产生的乱码问题。首先Java(包括JSP)源文件中很可能包含有中文,而Java和JSP源文件的...

java取session乱码问题 java解决中文乱码问题 java代码乱码 java代码处理乱码 java处理乱码 javaweb出现乱码怎么办 java处理请求乱码 java文件乱码怎么解决 javaweb添加一条数据乱码
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
水果冰激凌沙拉原料及做法 如何用水果自制冰激凌? 如何用水果制作冰激凌? 什么叫做项目融资贷款 小区物业要买公众责任险,要向物业公司打报告,报告范文怎么写_百度知 ... ...证被亲戚拿去做银行抵押贷款了,当初我签字担保人,现在怎么处理_百度... ...现在他一直没还款银行要起诉他了,他有房产证等他能用房子抵压吗... 破坏小区围墙进入小区偷盗公众责任险要赔付吗 2023-08-05 如何基于 uni-push2.0 实现全平台推送 ...叫我拿房产证复印件去银行帮他做担保人,然后还说每个月给我二干四... 中国名山海拔高度排名 java中文乱码,能说下string.getBytes()和new String()转码是,具体点... 中国排名前十名的大山有哪些 中国十大名山排名榜 中国名山排名前十 中国名山排名是怎样的? 微信公众账号有什么功能? 中国十大高山海拔排名 微信公众号怎么创建功能栏目?? 微信公众号 里面 这个功能怎么设置的? 信用卡逾期4天会影响征信吗 招商银行逾期2天会上征信吗? 招商银行逾期四天上征信吗? 招商银行逾期4天影响征信吗? 招商银行信用卡逾期四天会有影响吗 在手机上如何看u盘? 我招行信用卡忘记还款,逾期了几天,会影响个人信用记录吗?谢谢! 招行晚5天还款会上征信吗? 招行信用卡逾期4天对个人征信有影响吗? 怎么用手机打开优盘 中国排名前十的名山有哪些 java中文string 乱码如果不正则直接System.in.read(by)可以往文件写入中文可是我想进行匹配就要经过String c语言string出现乱码 函数返回值为String型时,且返回结果为中文时,得到的结果是乱码,这是怎么回事? 中国名山 排名 android中android:text="@string/请输入"中文乱码怎么办 中国的名山大川排名 读取xml文件获取String字符串为乱码,怎么解决 中国著名的山有哪些? javascript 字符串 String 初级问题 中文乱码 中国有几大名山? nsstring中文有乱码怎么解决? 中国最美的十大名山(最新排名是什么) C++ string输出乱码问题 String[]数组输出乱码? java String.substring 乱码 C++ STRING 中文问题 java中的输出string字符串,是乱码 qDebug() 输出 QString 中文显示乱码 java String.charAt在linux下获取中文怎么是乱码