編碼的時候用的Unicode,那你讀出來的時候,是不是也用的Unicode去解碼?
目前成都創(chuàng)新互聯(lián)已為近千家的企業(yè)提供了網(wǎng)站建設、域名、虛擬主機、綿陽服務器托管、企業(yè)網(wǎng)站設計、石嘴山網(wǎng)站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
并非SQLite的亂碼。windows的命令行console窗口只支持GBK的漢字。。
數(shù)據(jù)庫內(nèi)容為unicode/utf8/utf16等其他漢字編碼時,將不能在win命令行窗口顯示正確。
建一個console.bat文件,寫上
chcp 65001
cmd
然后建一個快捷方式到這個文件,把快捷方式的字體改成宋體
然后就可以使用sqlite命令并顯示utf-8的內(nèi)容
或者,庫中的文字也用GBK編碼,就可直接顯示。
在使用streamReader和streamWriter的時候使用編碼參數(shù)。
比如:dim sw As New StreamRriter("H:\編程資料\1.txt",System.Text.Encoding.Default)
dim sr As New StreamWeader("H:\編程資料\2.txt",true,System.Text.Encoding.Default)
一般出現(xiàn)亂碼都是在js裏面跳轉(zhuǎn)到哪個類然後得到這個參數(shù)的時候中文亂碼,有一個非常實用的法,在js你可以這樣寫:varurl=..;url=encodeURI(url);url=encodeURI(url);//最重要的部分,兩次調(diào)用encodeURI,就是編碼兩次然後在跳轉(zhuǎn)到url所在的類,獲取這個參數(shù)的方法如下:Stringname=request.getParameter("name");name=URLDecoder.decode(name,"utf8");這樣就能解決亂碼問題了,這種方法還沒遇到過不能解決的亂碼,
Public Function addEquipment() As Integer
Dim flag As Integer = 0
Dim strsql As String = ""
emditInfor = New DBHelper()'DBHelper()為數(shù)據(jù)庫操作文件,包括數(shù)據(jù)庫的連接插入更新查找等等
Try
strsql = "INSERT INTO Equipment ("
strsql = "AssetsID,"
...
strsql = "Size)"
strsql = "VALUES ("
strsql = "@AssetsID,"
...
strsql = "@Size)"
Dim cmd As SqlCommand = emditInfor.GetSqlStringCommond(strsql)
emditInfor.AddInParameter(cmd,"@AssetsID",SqlDbType.NVarChar, "1314")
...
emditInfor.AddInParameter(cmd, "@Size", SqlDbType.NVarChar, "5")
flag = emditInfor.ExecuteNonQuery(cmd)'返回受影響的行數(shù)
Catch ex As Exception
End Try
Return flag
End Function
像這樣以參數(shù)的形式傳值進去就可以了。