| 上一篇主題 :: 下一篇主題   | 
	
	
	
		| 發表人 | 
		內容 | 
	
	
		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 文章: 1645
 
  第 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 | 	  
 
 
根據大哥的指引,已能看到中文,萬分感謝    | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		goodnight
 
  
  註冊時間: 2008-10-13 文章: 473 來自: 台南市
  第 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 | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		chilin
 
  
  註冊時間: 2003-10-01 文章: 79 來自: 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 文章: 473 來自: 台南市
  第 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 | 
			 
		  | 
	
	
		| 回頂端 | 
		 | 
	
	
		  | 
	
	
		 |