mysql数据库编码转换小记

当项目涉及多个数据库,且编码不一致时,如一个使用Latin1,另一个使用UTF-8,会造成操作困难。通常需要对SQL参数进行转码,例如在处理UTF-8数据时,确保数据库连接的编码为ISO-8859-1。若要统一编码,可导出数据,修改表结构的字符集为UTF-8,再导入并创建新数据库。如果出现乱码,可能需要重新创建数据库并导入转换后的数据。
摘要由CSDN通过智能技术生成

环境:

     实际项目应用中,有时会一个项目使用多个数据库,可能数据库设计之初两处设计不周,使得两个数据库字符集不一样,可能一个会使用默认的Latin1西文编码,使得你创建的表,及表中数据在连接层都是以Latin1编码;而另外一处数据库使用UTF-8编码。

这样在开发中,我们操作不同数据库表时,将要对sql语句中传入得参数做必要的修改,否则将会操作失误。

比如:一般的网站中,我们通过Request得到的参数数据信息为UTF-8页面编码,故在执行这样的sql语句时要进行转码操作:

/**
	 * 将页面编码的数据转为数据库编码的数据
	 * 
	 * @param 欲转码的字符串
	 * @return 转码后的字符串
	 */
	public static String PageToDb(String PageString) {
		try {
			if (null == PageString) {
				return "";
			} else {
				if (dbEncoding.equals(pageEncoding)) {
					return PageString;
				}
				return new String(PageString.getBytes(pageEncoding), dbEncoding);
			}
		} catch (UnsupportedEncodingException e) {
			return "&
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值