存入mysql的特殊字符变?号,如何提前判断?

jackker 2009-03-25 02:30:14
我是以
?useUnicode=true&characterEncoding=GBK
这个参数链接mysql

在java里向mysql存入比如: ºabcdº
mysql里存的会变为 ?abcd?
也就是mysql无法存入特殊字符 º

我如何直接在java里判断字符是否可以正确的存入mysql不会变?号?
就是没有存入mysql之前,就提前在java里判断出ºabcdº是不可用的?
...全文
1185 21 打赏 收藏 转发到动态 举报
写回复
用AI写文章
21 条回复
切换为时间正序
请发表友善的回复…
发表回复
jackker 2009-03-29
  • 打赏
  • 举报
回复
搞定了,谢谢 :)
JavaLover00000 2009-03-26
  • 打赏
  • 举报
回复
那你这样做试试:把源字符串保存 String str1 = "ºabcdº";
然后把str1转为gbk编码的字符串
String str2 = new String(str1.getBytes(),"gbk");

然后比较str1,str2的值是否想等 str1.equals(str2);

若相等 则说明str1转为gbk编码时候不会变,这样他就是可以存入数据库了,反之应该就是不能存吧!
JavaLover00000 2009-03-26
  • 打赏
  • 举报
回复
呵呵 100分不错不错!!你问题搞定了吗?
jackker 2009-03-25
  • 打赏
  • 举报
回复
[Quote=引用 17 楼 JavaLover00000 的回复:]
我测了下 把utf-8编码的 "º" 转成gbk编码后确实是"?"

我想问楼主你是要在java代码里判断一个字符串"ºabcdº" 里是否有"º"符号吗?

-------------------------------------
我如何直接在java里判断字符是否可以正确的存入mysql不会变?号?
就是没有存入mysql之前,就提前在java里判断出ºabcdº是不可用的?
--------------------------------------
[/Quote]

是啊,在java里判断一个字串是否包含有会被转为?的字符,不仅是º
JavaLover00000 2009-03-25
  • 打赏
  • 举报
回复
我测了下 把utf-8编码的 "º" 转成gbk编码后确实是"?"

我想问楼主你是要在java代码里判断一个字符串"ºabcdº" 里是否有"º"符号吗?

-------------------------------------
我如何直接在java里判断字符是否可以正确的存入mysql不会变?号?
就是没有存入mysql之前,就提前在java里判断出ºabcdº是不可用的?

--------------------------------------
jackker 2009-03-25
  • 打赏
  • 举报
回复
我要能修改mysql编码我就不会来java版问了
真奇怪我明明在java版问的,怎么一个个都如此清楚mysql。
请看下问题再回答啊!!!
jackker 2009-03-25
  • 打赏
  • 举报
回复
我的目的不是让数据库可以保存º 符号!!!!!!!!!!!!!!!!
而是要java判断出GBK字符集会使º符号变为?号!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!

不要再说修改mysql字符集了!!!!!!!!!!!!!!!!!!!!!!!!!!!!
不要再说修改mysql字符集了!!!!!!!!!!!!!!!!!!!!!!!!!!!!
不要再说修改mysql字符集了!!!!!!!!!!!!!!!!!!!!!!!!!!!!
不要再说修改mysql字符集了!!!!!!!!!!!!!!!!!!!!!!!!!!!!
jackker 2009-03-25
  • 打赏
  • 举报
回复
大哥们,程序已经跑了3年了
现在改字符集根本不现实,
现在只能替换吗?因为目前只发现了º这个符号会变为?号。别的特殊符号不会

大哥们,程序已经跑了3年了
现在改字符集根本不现实,
现在只能替换吗?因为目前只发现了º这个符号会变为?号。别的特殊符号不会

大哥们,程序已经跑了3年了
现在改字符集根本不现实,
现在只能替换吗?因为目前只发现了º这个符号会变为?号。别的特殊符号不会

大哥们,程序已经跑了3年了
现在改字符集根本不现实,
现在只能替换吗?因为目前只发现了º这个符号会变为?号。别的特殊符号不会

大哥们,程序已经跑了3年了
现在改字符集根本不现实,
现在只能替换吗?因为目前只发现了º这个符号会变为?号。别的特殊符号不会

大哥们,程序已经跑了3年了
现在改字符集根本不现实,
现在只能替换吗?因为目前只发现了º这个符号会变为?号。别的特殊符号不会


大哥们,程序已经跑了3年了
现在改字符集根本不现实,
现在只能替换吗?因为目前只发现了º这个符号会变为?号。别的特殊符号不会

大哥们,程序已经跑了3年了
现在改字符集根本不现实,
现在只能替换吗?因为目前只发现了º这个符号会变为?号。别的特殊符号不会

大哥们,程序已经跑了3年了
现在改字符集根本不现实,
现在只能替换吗?因为目前只发现了º这个符号会变为?号。别的特殊符号不会

大哥们,程序已经跑了3年了
现在改字符集根本不现实,
现在只能替换吗?因为目前只发现了º这个符号会变为?号。别的特殊符号不会

大哥们,程序已经跑了3年了
现在改字符集根本不现实,
现在只能替换吗?因为目前只发现了º这个符号会变为?号。别的特殊符号不会
KingZChina 2009-03-25
  • 打赏
  • 举报
回复
编码的问题啊 在重新配置一下mysql的编码 就是在安装mysql的时候那些一步步的配置, 其中有一步就是配置编码的,把那步重新配置一下 ,
jackker 2009-03-25
  • 打赏
  • 举报
回复
大哥们,程序已经跑了3年了
现在改字符集根本不现实,
现在只能替换吗?因为目前只发现了º这个符号会变为?号。
rascalboy520 2009-03-25
  • 打赏
  • 举报
回复
我过去也遇到过这样的问题,解决方法写在这里了,
http://blog.csdn.net/rascalboy520/archive/2008/06/30/2597623.aspx
rascalboy520 2009-03-25
  • 打赏
  • 举报
回复
最简单也最直接的解决方法就是统一字符集
hoojo 2009-03-25
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 mumu_java 的回复:]
如果你的java中的字符集和mysql中的一样应该不会出现这样的问题啊.lz是不是mysql的显示问题.在mysql中敲命令:set names gbk;回车,再查询一下看看结果.
[/Quote]
同意

你输入的字符 属于半角或全角字符吧
应该在数据库里设置下 编码
一般编码要统一 比较好
^_*
mumu_java 2009-03-25
  • 打赏
  • 举报
回复
替换一下就可以了.

...
String str = "jºava";
str = str.replaceAll("º", "s");
System.out.println(str);
...
jackker 2009-03-25
  • 打赏
  • 举报
回复
phpmyadmin里插入会自动转变为 º
jackker 2009-03-25
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 mumu_java 的回复:]
mysql数据库的字符集要和java中的一致,你可以先用sql往数据库中插入一条带特殊字符的记录,看看结果是什么.如果真的不能存储,那你只能在java中用正则把特殊字符去掉了.
[/Quote]

我所有插入都先往mysql里insert一条"试一试"?
怎么用正则取出特殊字符?目前的情况是很多特殊字符是可以使用的,º 这个不行
mumu_java 2009-03-25
  • 打赏
  • 举报
回复
mysql数据库的字符集要和java中的一致,你可以先用sql往数据库中插入一条带特殊字符的记录,看看结果是什么.如果真的不能存储,那你只能在java中用正则把特殊字符去掉了.
jackker 2009-03-25
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 mumu_java 的回复:]
如果你的java中的字符集和mysql中的一样应该不会出现这样的问题啊.lz是不是mysql的显示问题.在mysql中敲命令:set names gbk;回车,再查询一下看看结果.
[/Quote]

不是现实问题,存在mysql里的确实是个?
jackker 2009-03-25
  • 打赏
  • 举报
回复
楼上,在java里完全不能判断某字符存入mysql是否会变?号码?
不会吧?
我想是不是把字符根据我mysql的编码encode一下,看看结果是否正确,或者是否包含?号
mumu_java 2009-03-25
  • 打赏
  • 举报
回复
如果你的java中的字符集和mysql中的一样应该不会出现这样的问题啊.lz是不是mysql的显示问题.在mysql中敲命令:set names gbk;回车,再查询一下看看结果.
加载更多回复(1)

62,615

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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