mikezunya 发表于 2016-6-23 14:21:14

请教一个数据编码转换问题[已解决]

本帖最后由 mikezunya 于 2016-6-24 13:50 编辑

请教下各位,单位有个打卡程序是sqlite数据库的,程序是以ANSI编码去读写的,AU3的操作都是以UNICODE编码进行读写的,这样一来公司的程序读取出来就乱码了。我尝试过用_WinAPI_MultiByteToWideChar、_WinAPI_WideCharToMultiByte转编码,但以失败告终,先来请教下各位。

kk_lee69 发表于 2016-6-23 15:37:49

回复 1# mikezunya

老實說 不是很能理解資料庫 的編碼跟 AU3 的 UNICODE 甚麼關係??

方便提供 SQLLITE 的資料庫嗎??

kk_lee69 发表于 2016-6-23 15:58:39

回复 1# mikezunya

那把AU3 改成 ANSI 呢 試看看
#AutoIt3Wrapper_UseAnsi=y

mikezunya 发表于 2016-6-23 16:18:29

本帖最后由 mikezunya 于 2016-6-24 13:35 编辑

回复 2# kk_lee69


kk_lee69 发表于 2016-6-23 16:25:10

回复 4# mikezunya

你的意思是簡單的說 就是 原本程序讀取正常 但是 你用AU3 寫入後 用原本的讀取就會不正常嗎??

kk_lee69 发表于 2016-6-23 16:31:53

回复 4# mikezunya


    你給我的資料 沒 中文字吧只有一筆紀錄 事嗎??

kk_lee69 发表于 2016-6-23 16:37:50

回复 6# mikezunya

這就是我覺得怪的地方你第二張圖為何要選 UNICODE 呢??第二張圖不可以依樣選 ANSI 嗎

kk_lee69 发表于 2016-6-23 16:38:34

回复 8# kk_lee69

資料庫是 ANSI 你用 UNCODE 去讀取當然會亂碼啊

kk_lee69 发表于 2016-6-23 16:38:54

回复 6# mikezunya


    資料庫是 ANSI 你用 UNCODE 去讀取當然會亂碼啊

kk_lee69 发表于 2016-6-23 16:44:39

回复 6# mikezunya


    方便的話是否 可以提供 兩筆資料一筆是 原本程序寫的一筆是你用你的程序寫的在提供一下 你寫的程式 看看 呢要有中文 的

mikezunya 发表于 2016-6-23 17:22:02

本帖最后由 mikezunya 于 2016-6-24 13:35 编辑

回复 10# kk_lee69


    现在就是要解决这个问题,编码转换的问题

kk_lee69 发表于 2016-6-23 17:31:18

回复 12# mikezunya

我當然理解你的問題 但是我覺得有個問題點是.......

原本程序已 ANSI 讀取 與 寫入....... 讀取的時候 ANSI 對吧~~~~這是第一張圖表式的意思

AU3 寫入後   你因為 AU3 是 已 UNICODE 寫入........所以你的第二張圖以 UNICODE 讀取 結果是亂碼 對嗎???


如果以上都是對的    那你的問題來了AU3 寫入後 存在於 資料庫上的 一樣是 以ANSI 的編碼才對
所以你的第二張圖應該還是以 ANSI 方式讀取才對.....

mikezunya 发表于 2016-6-23 17:35:27

本帖最后由 mikezunya 于 2016-6-23 17:37 编辑

回复 13# kk_lee69


    哈哈,是我大意了,言归正传,我先试试你说的那个方法可行不行。
    貌似已经不支持了,我的是3390,-《 跳过 #PRE_UseAnsi 定义,因为 ANSI 不再被支持.》

kk_lee69 发表于 2016-6-23 17:42:44

本帖最后由 kk_lee69 于 2016-6-23 17:44 编辑

回复 14# mikezunya

即使這樣 我也不認為 會有問題才對的 .....

_SQLite_Open 的時候
[可選參數] 編碼模式標誌, 只在創建時使用. 默認為 $SQLITE_ENCODING_UTF8

你開啟的時候 記得改成 ANSI 呢

mikezunya 发表于 2016-6-23 21:22:32

回复 15# kk_lee69


    sql_open打开可以用ANSI模式?我看了下UDF,只有这几种
Local $encoding = ["8", "16", "16be"]
        _SQLite_Exec($avRval, 'PRAGMA encoding="UTF-' & $encoding[$iEncoding] & '";')
页: [1] 2
查看完整版本: 请教一个数据编码转换问题[已解决]