[問題] 使用MSSQL的問題
發表於 : 2006-07-03 17:08
我想請問一下各位大大,
我用的是 Apache ,資料庫是MSSQL2000,
由於用的是utf-8的,在我架完後才發現,當我輸入中文,會有問題。
我爬了一下文,發現大家都說MSSql不支援utf-8,所以都建議使用MySql。
所以我查了一下phpBB開的資料庫格式,發現它是開varchar的格式,
那只是變動長度的欄位,要支援Unicode應該要開nvarchar,
而且在寫入的語法也應該改成前面要加N,比如
Select 後就可以知道兩種寫入方式不同,所得到的內容也會不同
,所以當然寫出來的就會不支援utf-8。
我不懂php語法,所以也不知道從何改起,除了資料庫在產生的時候必須要改變
Create語法,在mssql-odbc.php也必須改寫,不知道有大大曾經研究過相關的問題嗎?
我用的是 Apache ,資料庫是MSSQL2000,
由於用的是utf-8的,在我架完後才發現,當我輸入中文,會有問題。
我爬了一下文,發現大家都說MSSql不支援utf-8,所以都建議使用MySql。
所以我查了一下phpBB開的資料庫格式,發現它是開varchar的格式,
那只是變動長度的欄位,要支援Unicode應該要開nvarchar,
而且在寫入的語法也應該改成前面要加N,比如
代碼: 選擇全部
--真正的以Unicode方式儲存
--除了以NVarchar來當欄位型態外
--若輸入的資料為Unicode,必須要加上N在前面,才會真正的以Unicode方式儲存
Ex:
Insert Into UnicodeTest(Val) Values(N'娱乐·星光快线·电影·音乐·星座·游戏·笑话·旅游')
Insert Into UnicodeTest(Val) Values(N'ショッピング オークション コミック チケット 旅行 出張 保険 ')
Insert Into UnicodeTest(Val) Values('娱乐·星光快线·电影·音乐·星座·游戏·笑话·旅游')
Insert Into UnicodeTest(Val) Values('ショッピング オークション コミック チケット 旅行 出張 保険 ')
Insert Into UnicodeTest(Val) Values('游錫堃')
Insert Into UnicodeTest(Val) Values(N'游錫堃')
Select * from UnicodeTest
,所以當然寫出來的就會不支援utf-8。
我不懂php語法,所以也不知道從何改起,除了資料庫在產生的時候必須要改變
Create語法,在mssql-odbc.php也必須改寫,不知道有大大曾經研究過相關的問題嗎?