VFP 愛用者社區 首頁 VFP 愛用者社區
本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
 
 常見問題常見問題   搜尋搜尋   會員列表會員列表   會員群組會員群組   會員註冊會員註冊 
 個人資料個人資料   登入檢查您的私人訊息登入檢查您的私人訊息   登入登入

Foxpro 讀取 MySQL 里的中文字變成問號 [Solved]

 
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區
上一篇主題 :: 下一篇主題  
發表人 內容
PBlue



註冊時間: 2009-04-09
文章: 2


第 1 樓

發表發表於: 星期四 四月 09, 2009 5:15 pm    文章主題: Foxpro 讀取 MySQL 里的中文字變成問號 [Solved] 引言回覆

本人嘗試用Foxpro 9.0 (SP2) 聯到 MySQL (5.1.11) 有以下問題:

(1) Foxpro 可以連上 MySQL
(2) Foxpro 可以新增中文記錄到MySQL

但由Foxpro讀取MySQL中記錄到Foxpro中時全部中文變成問號 (???)

MySQL database table:
character set: big5 collation: big5_chinese_ci

以下程序碼嘗試用Foxpro 設定MySQL幾個和字符集有關的變量並比較設定前後,但用Foxpro browse時中文全為???:

已附上該小程序供指教,謝謝!


PBlue 在 星期三 四月 15, 2009 3:46 pm 作了第 1 次修改
回頂端
檢視會員個人資料 發送私人訊息
ckp6250



註冊時間: 2004-07-30
文章: 1537


第 2 樓

發表發表於: 星期四 四月 09, 2009 9:38 pm    文章主題: 引言回覆

小弟的建議是
如果您的Mysql是 5.xx 以上的版本的話
MySQL database table:
一律設成utf8,不要設成Big5
至於您的連線字串,請改成下列試看看
m.lih=sqlstringconnect("DRIVER={MySQL ODBC 5.1 Driver};SERVER=xxx.xxx.xxx.xxx;UID=username;PWD=password;Stmt=set names big5;database=db_name;charset=Big5")
另外,有一點您要注意,如果您的Mysql是3.xx的話,那麼ODBC也最好換成Myodbc 3.51.x
回頂端
檢視會員個人資料 發送私人訊息
PBlue



註冊時間: 2009-04-09
文章: 2


第 3 樓

發表發表於: 星期三 四月 15, 2009 3:45 pm    文章主題: 引言回覆

ckp6250 寫到:
小弟的建議是
如果您的Mysql是 5.xx 以上的版本的話
MySQL database table:
一律設成utf8,不要設成Big5
至於您的連線字串,請改成下列試看看
m.lih=sqlstringconnect("DRIVER={MySQL ODBC 5.1 Driver};SERVER=xxx.xxx.xxx.xxx;UID=username;PWD=password;Stmt=set names big5;database=db_name;charset=Big5")
另外,有一點您要注意,如果您的Mysql是3.xx的話,那麼ODBC也最好換成Myodbc 3.51.x


根據大哥的指引,已能看到中文,萬分感謝 Very Happy
回頂端
檢視會員個人資料 發送私人訊息
goodnight



註冊時間: 2008-10-13
文章: 446
來自: 台南市

第 4 樓

發表發表於: 星期一 二月 11, 2019 11:16 am    文章主題: 引言回覆

ckp6250 寫到:
小弟的建議是
如果您的Mysql是 5.xx 以上的版本的話
MySQL database table:
一律設成utf8,不要設成Big5
至於您的連線字串,請改成下列試看看
m.lih=sqlstringconnect("DRIVER={MySQL ODBC 5.1 Driver};SERVER=xxx.xxx.xxx.xxx;UID=username;PWD=password;Stmt=set names big5;database=db_name;charset=Big5")
另外,有一點您要注意,如果您的Mysql是3.xx的話,那麼ODBC也最好換成Myodbc 3.51.x


請問 CPK大大

在VFP中連接 MYSQL 讀取資料, ;charset=Big5" 這段, 只能加在連接字串嗎?
我試過在 vfp 9.0 sp2+MySQL ODBC 5.1 Driver使用 SQLEXEC()的方式是無效的

不知道有沒有人是用 SQLEXEC()的方式來處理編碼??

還是 VFP 只能使用連接字串處理編碼?

_________________
希望有更多人來參與
VFP wiki - 需要大家一起完成的VFP電子書與FAQ
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 雅虎訊息通 MSN Messenger
chilin



註冊時間: 2003-10-01
文章: 59
來自: Taipei,Taiwan

第 5 樓

發表發表於: 星期三 二月 13, 2019 10:12 pm    文章主題: 引言回覆

要注意有雷!

MySQL database table:
設成utf8:
資料表有字串格式欄位時,用SQLEXEC() 抓下來的CURSOR 字串欄位長度會變成3倍。
設成big5:
資料表有字串格式欄位時,用SQLEXEC() 抓下來的CURSOR 字串欄位長度會變成2倍。

SQLEXEC() 抓下來的CURSOR,用MODI STRU看一下。

_________________
一個喜愛Latte的男人
回頂端
檢視會員個人資料 發送私人訊息 參觀發表人的個人網站
goodnight



註冊時間: 2008-10-13
文章: 446
來自: 台南市

第 6 樓

發表發表於: 星期四 二月 14, 2019 9:33 am    文章主題: 引言回覆

chilin 寫到:
要注意有雷!

MySQL database table:
設成utf8:
資料表有字串格式欄位時,用SQLEXEC() 抓下來的CURSOR 字串欄位長度會變成3倍。
設成big5:
資料表有字串格式欄位時,用SQLEXEC() 抓下來的CURSOR 字串欄位長度會變成2倍。

SQLEXEC() 抓下來的CURSOR,用MODI STRU看一下。


感謝告知, 但印象中, 若超過256好像會自動變成 memo 欄位

_________________
希望有更多人來參與
VFP wiki - 需要大家一起完成的VFP電子書與FAQ
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 雅虎訊息通 MSN Messenger
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
1頁(共1頁)

 
前往:  
無法 在這個版面發表文章
無法 在這個版面回覆文章
無法 在這個版面編輯文章
無法 在這個版面刪除文章
無法 在這個版面進行投票
無法 在這個版面附加檔案
無法 在這個版面下載檔案


Powered by phpBB © 2001, 2005 phpBB Group
正體中文語系由 phpbb-tw 維護製作