请教一个数据编码转换问题[已解决]
本帖最后由 mikezunya 于 2016-6-24 13:50 编辑请教下各位,单位有个打卡程序是sqlite数据库的,程序是以ANSI编码去读写的,AU3的操作都是以UNICODE编码进行读写的,这样一来公司的程序读取出来就乱码了。我尝试过用_WinAPI_MultiByteToWideChar、_WinAPI_WideCharToMultiByte转编码,但以失败告终,先来请教下各位。 回复 1# mikezunya
老實說 不是很能理解資料庫 的編碼跟 AU3 的 UNICODE 甚麼關係??
方便提供 SQLLITE 的資料庫嗎?? 回复 1# mikezunya
那把AU3 改成 ANSI 呢 試看看
#AutoIt3Wrapper_UseAnsi=y 本帖最后由 mikezunya 于 2016-6-24 13:35 编辑
回复 2# kk_lee69
回复 4# mikezunya
你的意思是簡單的說 就是 原本程序讀取正常 但是 你用AU3 寫入後 用原本的讀取就會不正常嗎?? 回复 4# mikezunya
你給我的資料 沒 中文字吧只有一筆紀錄 事嗎?? 回复 6# mikezunya
這就是我覺得怪的地方你第二張圖為何要選 UNICODE 呢??第二張圖不可以依樣選 ANSI 嗎 回复 8# kk_lee69
資料庫是 ANSI 你用 UNCODE 去讀取當然會亂碼啊 回复 6# mikezunya
資料庫是 ANSI 你用 UNCODE 去讀取當然會亂碼啊 回复 6# mikezunya
方便的話是否 可以提供 兩筆資料一筆是 原本程序寫的一筆是你用你的程序寫的在提供一下 你寫的程式 看看 呢要有中文 的 本帖最后由 mikezunya 于 2016-6-24 13:35 编辑
回复 10# kk_lee69
现在就是要解决这个问题,编码转换的问题 回复 12# mikezunya
我當然理解你的問題 但是我覺得有個問題點是.......
原本程序已 ANSI 讀取 與 寫入....... 讀取的時候 ANSI 對吧~~~~這是第一張圖表式的意思
AU3 寫入後 你因為 AU3 是 已 UNICODE 寫入........所以你的第二張圖以 UNICODE 讀取 結果是亂碼 對嗎???
如果以上都是對的 那你的問題來了AU3 寫入後 存在於 資料庫上的 一樣是 以ANSI 的編碼才對
所以你的第二張圖應該還是以 ANSI 方式讀取才對..... 本帖最后由 mikezunya 于 2016-6-23 17:37 编辑
回复 13# kk_lee69
哈哈,是我大意了,言归正传,我先试试你说的那个方法可行不行。
貌似已经不支持了,我的是3390,-《 跳过 #PRE_UseAnsi 定义,因为 ANSI 不再被支持.》 本帖最后由 kk_lee69 于 2016-6-23 17:44 编辑
回复 14# mikezunya
即使這樣 我也不認為 會有問題才對的 .....
_SQLite_Open 的時候
[可選參數] 編碼模式標誌, 只在創建時使用. 默認為 $SQLITE_ENCODING_UTF8
你開啟的時候 記得改成 ANSI 呢 回复 15# kk_lee69
sql_open打开可以用ANSI模式?我看了下UDF,只有这几种
Local $encoding = ["8", "16", "16be"]
_SQLite_Exec($avRval, 'PRAGMA encoding="UTF-' & $encoding[$iEncoding] & '";')
页:
[1]
2