java 与 mysql 中文问题的处理

车载测试面试题总结 首先确认是什么问题,如果是测试软件的问题就先确定自己的测试方法有没有问题,如果没有问题,那就是测试软件的问题,这时候就需要提bug 进行跟踪,(比如BCM测试的时候,先明确测试的输入,对输入)进行需求分析,然后设计测试用例,进行用例评审,评审完执行测试用例形成最终的版本,台架分为:hil(黑尔)台架,单个控制器的台架、整车台架、车身台架、动力系统台架等,主要验证其功能,或者实车无法满足的测试环境。这个人不可能一直,点击几千次或者多少次几个小时连续点击,人不可能一直在点。因为要模拟一下这个稳定性, 阅读详情

java 与 mysql 中文问题的处理 
--------------------------------------------------------------------------------
 
2005-08-01   来源:优快云  作者:kengking 
问题:用 jdbc 插入、读取数据库种文字串乱码。 


首先,mysql 数据库中的东西都是二进制存放的,支持任何数据,当然包括中文。你到命令行下 
insert into testtable values ( '中文' ); 
select * from testtable; 
全都显示正常。 
但是,虽然存取中文没问题,但排序、匹配的时候有问题。所以如果你的数据库里有中文的话,记得在配置文件中,如 c:winntmy.ini 中的 [mysqld] 里添加一行: 
default-character-set=gbk 
然后重启 mysql server 。 注意 gbk 要小写,不然 mysqld 启动不了。 


其次,数据库没问题,下面看看 java 程序。在程序里很无聊地加一句调试语句: 
out.println("中文"); 
也显示正常,说明整个 java 环境没问题。 


所以,当然是联系 java 和 mysql 的部分,mysql jdbc driver 出问题了。 
分 析一下,java 内部使用 unicode ,而 mysql 缺省使用 iso-8xxx(忘了),所以 jdbc driver 把查询字符串传 给 mysql server 时,会做 unicode->iso-8xxx 的转换,从 mysql server 接受结果时,会 做 iso-8xxx->unicode 的转换。(在屏幕上显示结果时会 unicode->GBK,不过不关这里的事。) 
这就有问题了,我在命令行下插入数据库的中文字符串是 GBK (这是简体中文 windows 的默认),所以 jdbc driver 接受查询结果时,应该做 GBK->unicode 的转换才对。 
验证一下,对从数据库中读出的中文字串 s , 
new String( s.getByte("iso-8xxx"), "gbk" ) 
将 s 先做一个 unicode->iso-8xxx 转换成它存放在数据库中的原始模样。我们知道它是 gbk ,所以手工来 gbk->unicode ,这样 java 程序就显式正常了。 
类似,写入数据库的时候,我们期待 jdbc driver 会把 unicode->gbk ,结果却是 unicode->iso-8xxx ,当然是乱码了。 


有很多文章,就到此为止,并告诉我们:要解决中文问题,自己手工转码吧。 
这实在是不负责任。如果每一个字符串都要手工转码,说明程序设计出了问题。 
想一想,写 mysql jdbc driver 的家伙会连转码都不知道? 
所以我看看 connector-j-3.0.7 里面的 readme, 找到一个解决方案: 
connection = DriverManager.getConnection( "jdbc:mysql://localhost/test?user=root&password=&useUnicode=true&characterEncoding=GBK" ); 
这是告诉 jdbc driver 强制按指定参数转码 


其 实还是有问题。如果 mysql server 一定得用 iso-8xxx ,那就只有用上一个办法了。但我记得我的 mysql 是 gbk ,不是 都改过 my.ini 了吗? jdbc driver 怎么都不自动探测 mysql server 的字符集呢? 
这个时候就看到开放源码的好处了 :-) connector-j-3.0.7 源码中确实有代码读取 mysql server 的信息,包括字符集。从注释中知道, 
作 者为 unicode 转换到单字节字符集写了自己的转换函数,并号称比 jvm 的快百分之多少多少。所以代码中有一段,判段数据库如果使用的是单字节 就调用自己的转换函数。但这段代码后面就忘了把多字节字符集交给 jvm 去转换了,所以变成了缺省的 iso-8xxx 转换。 
我的修改方式: commysqljdbcConnecter.java 这个文件的 1969 行, 
this.doUnicode = true; // force the issue 
将之上移四行到 1964 行,放在下面这一行的前面: 
try { 
用这份代码重新编出来的 jdbc driver ,你的 java 访问数据库的程序不用做任何修改就可以正确读写中文了,不过要记得 mysql server 要 default-character-set=gbk 
我使用它测试了几个小程序,中文都显示正常,而且都没死机、异常。呵呵,自我感觉很好。

c语言实现求一个矩阵特征值和特征向量 前言 求矩阵的特征值,主要是用的QR分解,在我的有一次博客里,我已经详细地给出了计算的过程,大家有兴趣可以去看下,经过几天的钻研,终于完成了整个的eig算法。下面我将把我的整个代码附上,有不懂的可以问我,欢迎一起讨论学习! 这是对上一次的修改版,上一次写的程序是在C++编译环境下编译的,所以放在c里面编译有些会出错。 最后,如果有不对的地方希望大... 阅读详情

相关推荐

大模型训练显存瘦身全记录:从ZeRO-3参数分区到CPU Offload的硬件协奏曲

本文详细解析了如何通过ZeRO-3参数分区与CPU/NVMe卸载技术优化大模型训练的显存使用。结合bf16混合精度与梯度累积等策略,实现在消费级GPU上高效训练百亿参数模型,显著提升硬件利用率与训练效率。

weixin_29051245的博客 435

mysql 字段 英文 变 中文_java调整数据库保存指定长度字段,(英文占1,中文占2或3)...

在编写存入数据库数据时,一次碰见,字段过长,无法存入的尴尬。数据库长度为50,页面中我截取45位,满以为不会出错。结果忽略了,一个中文字符的长度在数据库中占的不是1。中文GBK字符长度为2,UTF-8长度为3,下面就是一个,判断字符串,并截取指定长度的方法。如果长度超标,会向前截取,并在最后加入三个英文字符...例,字段保存到数据库,要从保存50长度 ,但是subString(),如果纯汉字,能保...

weixin_32933155的博客 324

步进电机驱动算法——梯形加减速算法

目录步进电机梯形加减速梯形加减速算法原理分析算法实现 步进电机梯形加减速 电机的控制方式一般分为开环控制与闭环控制两种控制方式,其中开环控制原理框图如下: 这种种控制方式的特点是:控制简单、实现容易、价格较低,这种开环控制方式,负载位置对控制电路没有反馈。 对于步进电机,控制脉冲的输入并不依赖于转子的位置,而是按一固定的规律发出控制脉冲,如果励磁变化太快,电机不能移动到新的位置,那么实际负载位置与理想位置就会产生一个偏差,就有可能出现失步或者过冲现象,所以需要使用加减速算法。 梯形加减速算法,S加减速算法等

aaa376070331的博客 3万+

mysql编程中文处理,Java操作MySQL的中文处理方法

Java操作MySQL的中文处理方法分享到:这是很头痛的问题,一直都是在困扰着我们。我有一个不算简单也不算难的方法,这是我一直在用的方式。1、建立一个类,包括一个格式将中文转换为ISO8859-1编码的方法:publicclassFormat2Chinese{publicFormat2Chinese(){}publicStringformat2IS08859(Stringstr){...

weixin_33302571的博客 219

基于Quartus II软件的FPGA综合实验——多功能数字钟

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言一、设计要求二、设计原理三、设计过程1.数码管扫描模块2.计时模块3.闹钟模块4.闹钟响铃模块5.数码管显示模块6.整点报时功能7.模式选择模块(计时器主控电路)四、实验中遇到的困难及解决方案五、总结 前言 FPGA综合实验——多功能数字钟 基于Quartus II软件 一、设计要求 设计一个能进行时、分、秒计时的十二小时制或二十四小时制的数字钟,并具有定时与闹钟功能,能在设定的时间发出闹铃音,能非常方便地对小时、分钟和秒进.

qq_53022342的博客 2万+

服务器测试之网卡性能调优

nvidia下载mlnx_ofed:https://network.nvidia.com/products/infiniband-drivers/linux/mlnx_ofed/intel下载驱动固件:https://www.intel.com/content/www/us/en/download-center/home.html。然而,你可以根据实际情况手动调整中断相关配置。老生常谈了,一些性能相关的设置项打开,节能的关闭,虚拟化相关的VMX/SR-IOV/IOMMU最好也都关掉。

qq_41897488的博客 4907

java获取map乱码_Java程序使用MySQL时返回参数为乱码的解决方案大全

解决Java程序使用MySQL时返回参数为乱码的示例教程先说MySQL的字符集问题。Windows下可通过修改my.ini内的default-character-set=utf8 //客户端的默认字符集在MySQL客户端工具中输入SHOW VARIABLES LIKE 'character%';显示如下这样执行读取信息返回中文为乱码,解决办法是,在连接数据库之后,读取数据之前,先执行一项查询 S...

weixin_33211213的博客 965

使用PyTorch设计卷积神经网络(CNN)来处理遥感图像Indian Pines数据集

使用PyTorch设计卷积神经网络(CNN)来处理遥感图像Indian Pines数据集

XAX520_1314的博客 2489

java新增mysql时 中文出现_java在mysql中添加数据出现中文乱码怎么解决

java在mysql中添加数据出现中文乱码怎么解决发布时间:2020-06-29 10:44:50来源:亿速云阅读:89作者:Leahjava在mysql中添加数据出现中文乱码怎么解决?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。原因:造成乱码的原因是字符集不一致,通常只需要数据库建表时候指定的字符集与java设置数据库连接设置u...

weixin_36455001的博客 229

告别轮询!用STM32CubeMX给STM32F030配置ADC多通道+DMA,实测代码分享

本文详细介绍了如何使用STM32CubeMX为STM32F030配置ADC多通道采集与DMA传输,显著提升采集效率。通过实测对比轮询与DMA模式的性能差异,提供完整的代码实现和优化技巧,帮助开发者快速掌握这一高效采集方案。

weixin_42570296的博客 409

Autosar配置——导入DBC后配置SecOC同步报文和同步请求报文

在Autosar中,安全性是一个重要的考虑因素,而SecOC(Secure On-Board Communication)是一种用于保护通信数据完整性和安全性的安全机制。在上述示例中,我们配置了同步报文和同步请求报文的属性。接下来,我们需要在Autosar中配置同步报文和同步请求报文。同步报文用于在通信双方之间同步SecOC状态,而同步请求报文用于请求SecOC的状态信息。通过以上配置,我们成功地导入了DBC文件,并在Autosar系统中配置了SecOC同步报文和同步请求报文。希望以上信息对您有所帮助!

CyberSphinx的博客 649

mysql java 问题_java 与 mysql 中文问题的处理

java与mysql中文问题的处理--------------------------------------------------------------------------------2005-08-01来源:优快云作者:kengking问题:用jdbc插入、读取数据库种文字串乱码。首先,mysql数据库中的东西都是二进制存放的,支持任何数据,当然包括中文...

weixin_39803977的博客 225

【深度学习新浪潮】算力行业的核心技术有哪些?

算力行业核心技术是芯片+互联+存储+调度+能效+软件的全栈协同:芯片提供算力、互联打通集群、存储保障数据、调度提升效率、能效支撑规模、软件释放算力。当前AI大模型推动算力从“单机”走向“万卡级超节点集群”,技术竞争从单一芯片升级为系统级、全栈化的综合能力。

专注:太空算力、AI infra、异构调度、大模型成本工程 338

Java 与 mysql 中文问题的处理

Java 与 mysql 中文问题的处理 作者: 发文时间:2006.06.05 来源:优快云

jxcjxinxing的专栏 769

老版QQ原生表情gif动态

这是老版的QQ表情,不过全是动态的的,Windows照片查看器是不会动的,可以右击用浏览器打开查看,再说一遍是老版的,只是分享给宁愿用老版也要动态的人。

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

mysql处理还是java程序处理_Java 与 mysql 中文问题的处理

我的环境:中文简体 win2000 pro + sp3mysql server 4.0.12j2sdk 1.4.01connetcor-j 3.0.7问题:用 jdbc 插入、读取数据库种文字串乱码。首先,mysql 数据库中的东西都是二进制存放的,支持任何数据,当然包括中文。你到命令行下insert into testtable values ( '中文' );select * from tes...

weixin_39887531的博客 277

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

Java链接Mysql中文乱码问题处理

 转自http://developer.51cto.com/art/200906/130425.htm java 相关乱问题解决方案【http://blog.matrix.org.cn/page/kjj?entry=jsp_%E4%B8%AD%E6%96%87%E9%97%AE%E9%A2%98_final下面是在网上搜集的资料.java中文问题详解http://www.cn-java

成长中的专栏 752

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

[转帖]Java 与 mysql 中文问题的处理

导读:   我的环境:   中文简体 win2000 pro + sp3   mysql server 4.0.12   j2sdk 1.4.01   connetcor-j 3.0.7   问题:用 jdbc 插入、读取数据库种文字串乱码。   首先,mysql 数据库中的东西都是二进制存放的,支持任何数据,当然包括中文。你到命令行下   insert into testtable va

曲奇饼的专栏 553

关于Java调用批处理命令向mysql导入数据的中文乱码有关问题

转自 http://www.myexception.cn/mysql/508006.html   最近写了个很没意思的小工具,写到一半的时候发现,mysql的可视化工具里面有可以导入excel文件的工具。不过步骤太多不适合不懂sql的人使用,由此,还是将写到一半的小工具给完成了吧,此工具对于懂代码的人来说没有任何的意义,因为你完全可以使用工具来做。我之所以写这个工具姑且说是一个平台吧,由于要让公

风起于青萍之末,折秀于林 1131

Java 与 mysql 中文问题的处理(转载)

Java 与 mysql 中文问题的处理   发布时间:2006.06.05 14:4

448

java 处理 mysql 中文乱码问题

2019独角兽企业重金招聘Python工程师标准>>> ...

weixin_34129145的博客 62

Java简单操作mysql数据库代码存档+处理中文乱码问题

首先用的Maven框架,引包: mysql mysql-connector-java 5.1.17 jar compile         存档对mysql的基本读写操作 try { Connect

zzyzzy12 936

关于Java调用批处理命令向mysql导入数据的中文乱码问题

[size=large](转载请标明作者和出处,谢谢合作。) 最近写了个很没意思的小工具,写到一半的时候发现,mysql的可视化工具里面有可以导入excel文件的工具。不过步骤太多不适合不懂sql的人使用,由此,还是将写到一半的小工具给完成了吧,此工具对于懂代码的人来说没有任何的意义,因为你完全可以使用工具来做。我之所以写这个工具姑且说是一个平台吧,由于要让公司销售渠道上的人来使用,他不...

砌砖工 226
上一篇: Fedora 10 安装JDK
isbasic
博客等级 码龄20年 2粉丝 3原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值