將儲存欄位設定為 nchar 或 nvarchar 等 UNICODE 資料型態應該就可以了。
1.定義 DB 之SCHEMA 必須為 nvarchar
2.網頁編碼須為 utf-8
<%@ page language="java" import="java.util.*" contentType="text/html; charset=utf-8" pageEncoding="utf-8"%>
3.Database DAO 必須以 UTF-8 連線
<property name="connection.driver_class">com.microsoft.sqlserver.jdbc.SQLServerDriver</property>
<property name="hibernate.connection.url">jdbc:sqlserver://127.0.0.1:1433;databaseName=myDB2;useUnicode=true;characterEncoding=UTF-8;</property>
參考資料:
原文出處: 吳思融
http://rogercode.blogspot.tw/2015/07/sql-serversql-server.html
[SQL Server]修改SQL Server資料庫字元編碼
目前網頁幾乎都用萬國碼UTF-8 and Unicode
若希望將資料庫的定序名稱更改為時,卻無法使用SQL Server Enterprise Manager直接修改,
可以使用下列語法修改:
ALTER DATABASE [DBName] SET SINGLE_USER WITH ROLLBACK IMMEDIATE
ALTER DATABASE [DBName] COLLATE SQL_Latin1_General_CP1_CI_AS
ALTER DATABASE [DBName] SET MULTI_USER WITH ROLLBACK IMMEDIATE
PS.[DBName]為您的資料庫名稱。
因為在改定序名稱時必須先鎖定資料庫
第一行要先將資料庫設定為SINGLE_USER(同一時間只能有一位使用者存取資料庫)
第二行修改定序名稱
第三行將資料庫改回 MULTI_USER
另外要執行這些指令值須先將所在的資料庫切換到master下。
註:
"Chinese_Taiwan_Stroke_CI_AS"為BIG5
"SQL_Latin1_General_CP1_CI_AS"為UTF8
若希望將資料庫的定序名稱更改為時,卻無法使用SQL Server Enterprise Manager直接修改,
可以使用下列語法修改:
ALTER DATABASE [DBName] SET SINGLE_USER WITH ROLLBACK IMMEDIATE
ALTER DATABASE [DBName] COLLATE SQL_Latin1_General_CP1_CI_AS
ALTER DATABASE [DBName] SET MULTI_USER WITH ROLLBACK IMMEDIATE
PS.[DBName]為您的資料庫名稱。
因為在改定序名稱時必須先鎖定資料庫
第一行要先將資料庫設定為SINGLE_USER(同一時間只能有一位使用者存取資料庫)
第二行修改定序名稱
第三行將資料庫改回 MULTI_USER
另外要執行這些指令值須先將所在的資料庫切換到master下。
註:
"Chinese_Taiwan_Stroke_CI_AS"為BIG5
"SQL_Latin1_General_CP1_CI_AS"為UTF8
沒有留言:
張貼留言