天天看點

mysql資料庫國際化

1、配置資料庫的編碼,将連接配接編碼方式設定為utf-8即可,在SSH架構中,假設資料庫連接配接參數在applicationContext.xml中,則資料庫連接配接參數如下:

<property name="url">
			<value>jdbc:mysql://localhost:3306/demo?useUnicode=true&characterEncoding=utf-8</value>
		</property>
           

這樣設定的作用為:指定字元的編碼、解碼格式

注意:在xml配置檔案中配置資料庫url時,要使用&的轉義字元也就是&

例如,如果指定mysql資料庫的編碼格式為gbk,而在做項目時的資料庫用的是utf-8編碼,這時添加

useUnicode=true&characterEncoding=utf-8
           

的作用如下:

i:存資料時

資料庫在存放項目資料的時候會先用UTF-8格式将資料解碼成位元組碼,然後再将解碼後的位元組碼重新使用GBK編碼存放到資料庫中。

ii:取資料時

在從資料庫中取資料的時候,資料庫會先将資料庫中的資料按GBK格式解碼成位元組碼,然後再将解碼後的位元組碼重新按UTF-8格式編碼資料,最後再将資料傳回給用戶端。

2、添加過濾器來過濾使用者的輸入

在寫入資料庫之前,使用者通過表單輸入的多語言文字還需要編碼為utf-8的參數才可以正确的輸入到資料庫。這時在web.xml檔案中添加該過濾器,并制定utf-8編碼。配置如下:

<filter>
		<filter-name>characterEncoding</filter-name>
		<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
		<init-param>
			<param-name>encoding</param-name>
			<param-value>utf-8</param-value>
		</init-param>
	</filter>
	<filter-mapping>
		<filter-name>characterEncoding</filter-name>
		<url-pattern>/*</url-pattern>
	</filter-mapping>
           

這樣,使用者就可以通過表單往資料庫中輸入多語言的文字了。使用者的資訊儲存在request中,在送出到資料庫之前,會通過上面的過濾器來轉換使用者輸入的資訊,轉換的編碼即為上面指定的utf-8,這樣,在送出到資料庫的字元串就是utf-8編碼的了