除了众所周知的中文问题之外,Linux平台中的mysql实例可能遇到这样的问题: 你使用mysql5x版本并且配置数据库使用UTF-8字符集,你
除了众所周知的中文问题之外,Linux平台中的mysql实例可能遇到这样的问题:
你使用mysql5x版本并且配置数据库使用UTF-8字符集,你使用linux标准的jdk环境,你使用一个足够高的mysql jdbc driver,你使用UTF-8字符集做为J2EE的基本字符集。你使用了很标准的CharacterEncodingFilter完成透明的字符集转换。
这样,你在大多数情况下已经没有感受到中文问题对Java应用的干扰了,但偏偏在保存一个表单的时候发现中文被保存成了乱码或者问号。
究其原因,这是mysql驱动的一个已知的BUG,我没能找到(没去找)原始的BUG报告,但其大意为,jdbc driver可能没有能够正确识别jdbc url中的dash字符。
如果你为test数据库指定了默认的整理类型到“UTF-8”的话(例如 alter database test character set utf8;),往往从数据库中读取数据是能够自动采用正确的解码序列的,所以你的Java应用在“只读状态”下一切都显得那么的正常,直到你在尝试提交表单的时候,该问题才暴露出来。
解决的办法是用“UTF8”替代URL中的“UTF-8”,避开上述的陷阱。
另外一个附加的问题,JDBC URL对参数的分隔是使用“&”字符而不是“&”字符,若是你在URL中写了“&”的话,同样会使得后面的参数不能正确应用到driver layer上。这个问题比较复杂,原因是你在不同位置书写URL的时候可能需要进行转义的:
1. 在xml文件中写URL的时候,应该加上&,原因是xml认为&是转义符的引导字符,因此你写user=root&password=xxx到xml中时,等价于在java源代码中写user=root&password=xxx。
2. 在properties文件中写URL的时候,&没有转义含义,因此这时候的URL和Java源代码中的URL格式基本一致。所谓的基本一致,涉及到另外一个特殊字符“:”,,在properties中,用“\:”转义序列表示一个“:”是可选的,也就是说很多时候,你可以混用这两个格式。

本文讨论了使用MySQL的Alter Table语句修改表,包括添加/删除列,重命名表/列以及更改列数据类型。

文章讨论了为MySQL配置SSL/TLS加密,包括证书生成和验证。主要问题是使用自签名证书的安全含义。[角色计数:159]

文章讨论了流行的MySQL GUI工具,例如MySQL Workbench和PhpMyAdmin,比较了它们对初学者和高级用户的功能和适合性。[159个字符]

本文讨论了使用Drop Table语句在MySQL中放下表,并强调了预防措施和风险。它强调,没有备份,该动作是不可逆转的,详细介绍了恢复方法和潜在的生产环境危害。

本文讨论了在PostgreSQL,MySQL和MongoDB等各个数据库中的JSON列上创建索引,以增强查询性能。它解释了索引特定的JSON路径的语法和好处,并列出了支持的数据库系统。

文章讨论了使用准备好的语句,输入验证和强密码策略确保针对SQL注入和蛮力攻击的MySQL。(159个字符)


热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

SublimeText3 英文版
推荐:为Win版本,支持代码提示!

SecLists
SecLists是最终安全测试人员的伙伴。它是一个包含各种类型列表的集合,这些列表在安全评估过程中经常使用,都在一个地方。SecLists通过方便地提供安全测试人员可能需要的所有列表,帮助提高安全测试的效率和生产力。列表类型包括用户名、密码、URL、模糊测试有效载荷、敏感数据模式、Web shell等等。测试人员只需将此存储库拉到新的测试机上,他就可以访问到所需的每种类型的列表。

Dreamweaver Mac版
视觉化网页开发工具

适用于 Eclipse 的 SAP NetWeaver 服务器适配器
将Eclipse与SAP NetWeaver应用服务器集成。

SublimeText3 Linux新版
SublimeText3 Linux最新版