作者 主題: 關於 Access+MySQL+MyODBC+UTF-8 的問題  (閱讀 11328 次)

0 會員 與 1 訪客 正在閱讀本文。

bruce_wu

  • 憂鬱的高中生
  • ***
  • 文章數: 91
    • 檢視個人資料
關於 Access+MySQL+MyODBC+UTF-8 的問題
« 於: 2007-03-13 13:28 »
伺服器:Linux
MySQL: 4.1.20
預設語系都使用 UTF-8
透過 php 程式連接資料庫或 phpmyadmin 都可以正常顯示及寫入
UTF-8 的字,都很正常

但有一需求:
必須從 Windows 端透過 MyODBC 連接該 MySQL 伺服器做資料的應用

舉一個例:
MyODBC 版本  3.51.14
建立好 MyODBC 後 使用 Microsoft Access 建立一個連結資料表
但,看到的中文字卻都是 ?????? ,無法正常顯示

請問這該如何做才能正常呢?

謝謝!

micmic3

  • 俺是博士!
  • *****
  • 文章數: 1692
    • 檢視個人資料
Re: 關於 Access+MySQL+MyODBC+UTF-8 的問題
« 回覆 #1 於: 2007-03-13 13:40 »
引述: "bruce_wu"
伺服器:Linux
MySQL: 4.1.20
預設語系都使用 UTF-8
透過 php 程式連接資料庫或 phpmyadmin 都可以正常顯示及寫入
UTF-8 的字,都很正常

但有一需求:
必須從 Windows 端透過 MyODBC 連接該 MySQL 伺服器做資料的應用

舉一個例:
MyODBC 版本  3.51.14
建立好 MyODBC 後 使用 Microsoft Access 建立一個連結資料表
但,看到的中文字卻都是 ?????? ,無法正常顯示

請問這該如何做才能正常呢?

謝謝!

我想應該是沒辦法吧....Microsoft Access  不知有沒有支援 utf8
看這理
http://ooo.tnc.edu.tw/modules/newbb/viewtopic.php?topic_id=1719&start=0

bruce_wu

  • 憂鬱的高中生
  • ***
  • 文章數: 91
    • 檢視個人資料
關於 Access+MySQL+MyODBC+UTF-8 的問題
« 回覆 #2 於: 2007-03-13 14:02 »
Microsoft Access 確定本身是有支援 Unicode 的
你在 ACCESS 內建立欄位,是可以選用 Unicode 編碼格式的

harrier

  • 榮譽博士
  • 俺是博士!
  • *****
  • 文章數: 1856
  • 性別: 男
    • 檢視個人資料
    • 國屬武裝兵
關於 Access+MySQL+MyODBC+UTF-8 的問題
« 回覆 #3 於: 2007-03-13 14:13 »
http://lists.mysql.com/myodbc/10586

不知道這是不是答案。

以 ORACLE Database 的經驗來看,出現亂碼多半是連線的 client 端和資料庫端編碼不一致的關係。
...90Net(90:1200/1203),GameNET(99:700/707),ALLNet(92:9200/3111),InfoNet(30:100/103)..MaximusCBCS(浮懷),AirNet,TenderNet,StormNet,FidoNet...
<<- www.nas.vg ->>

tiebob

  • 憂鬱的高中生
  • ***
  • 文章數: 108
    • 檢視個人資料
關於 Access+MySQL+MyODBC+UTF-8 的問題
« 回覆 #4 於: 2007-03-13 15:15 »
引述: "harrier"
http://lists.mysql.com/myodbc/10586

不知道這是不是答案。

以 ORACLE Database 的經驗來看,出現亂碼多半是連線的 client 端和資料庫端編碼不一致的關係。


嗯!同意大大的看法啦!
mysql 在這一點上實在太過彈性,上次用 vs.net 讀取 mysql資料,就是卡在連線編碼沒有設定到,才讀出一堆亂碼。

access小弟沒有試過,不過若用 vs.net 來讀取 mysql的資料庫,除非原先的資料庫不易轉換,不然,全部設定 utf8,可以減少很多Debug問題的時間。

風車轉阿轉

  • 憂鬱的高中生
  • ***
  • 文章數: 127
    • 檢視個人資料
關於 Access+MySQL+MyODBC+UTF-8 的問題
« 回覆 #5 於: 2007-03-13 23:55 »
可能是沒指定編碼的關係
用 MyODBC 連接 MySQL 下一個 SQL
SET NAMES utf8
上面這可以在 MyODBC 上面做設定

有在 ASP(BIG5) 連結 MySQL(utf8) 用 MyODBC 是正常的

bruce_wu

  • 憂鬱的高中生
  • ***
  • 文章數: 91
    • 檢視個人資料
關於 Access+MySQL+MyODBC+UTF-8 的問題
« 回覆 #6 於: 2007-03-14 09:14 »
目前測試結果如下:
1.使用 3.51.14 版的 MyODBC 是可以下達 SET NAMES utf8 ,但出來會是亂碼文字,沒下達的話是顯示 ??????? ,如改成下達 SET NAMES big5 ,那這樣字可以顯示出來,但有一些特殊字(超過BIG5範圍的字),就顯是不出來,會顯示 ?

2.如果使用 5.00.11 版的 MyODBC 但有問題,當使用 Access 透過這一個 5.00.11 版的 MyODBC 要去建立一個「連結資料表」時會出現:「ODBC -- 呼叫失敗」,5.00.11 版的,少了很多可以設定的東西。

3.最後我不對 5.00.11 版死心,繼續想辦法,最後就是在 Access 內使用 3.51.14 版的 MyODBC 於建立一個「連結資料表」,完成之後,然後再將
原本建立的這一個 ODBC 連接驅動改成 5.00.11 版的驅動,這樣使用上沒
有出現「ODBC -- 呼叫失敗」,真是奇怪的問題,但使用 5.00.11 版的 MyODBC 結果是, UTF-8 可以正常的完全顯示出來囉

以上是目前的測試結果!

風車轉阿轉

  • 憂鬱的高中生
  • ***
  • 文章數: 127
    • 檢視個人資料
關於 Access+MySQL+MyODBC+UTF-8 的問題
« 回覆 #7 於: 2007-03-14 09:19 »
引述: "bruce_wu"
目前測試結果如下:
1.使用 3.51.14 版的 MyODBC 是可以下達 SET NAMES utf8 ,但出來會是亂碼文字,沒下達的話是顯示 ??????? ,如改成下達 SET NAMES big5 ,那這樣字可以顯示出來,但有一些特殊字(超過BIG5範圍的字),就顯是不出來,會顯示 ?

2.如果使用 5.00.11 版的 MyODBC 但有問題,當使用 Access 透過這一個 5.00.11 版的 MyODBC 要去建立一個「連結資料表」時會出現:「ODBC -- 呼叫失敗」,5.00.11 版的,少了很多可以設定的東西。

3.最後我不對 5.00.11 版死心,繼續想辦法,最後就是在 Access 內使用 3.51.14 版的 MyODBC 於建立一個「連結資料表」,完成之後,然後再將
原本建立的這一個 ODBC 連接驅動改成 5.00.11 版的驅動,這樣使用上沒
有出現「ODBC -- 呼叫失敗」,真是奇怪的問題,但使用 5.00.11 版的 MyODBC 結果是, UTF-8 可以正常的完全顯示出來囉

以上是目前的測試結果!


MyODBC 5.0 問題還很多
先不要用吧... 開發團隊真的拿我們當白老鼠
3.51.x 蠻穩定的,且搭配新版的 MySQL 也都 ok

對於 1. 的問題,超出 BIG5 的範圍這是沒辦法避免的
除非你程式也改成 utf8

bruce_wu

  • 憂鬱的高中生
  • ***
  • 文章數: 91
    • 檢視個人資料
關於 Access+MySQL+MyODBC+UTF-8 的問題
« 回覆 #8 於: 2007-03-14 10:05 »
的確 5.x 版的問題多
但最前頭小弟有說明了
PHP+MySQL 都沒問題 UTF-8 都可以正常使用

目前問題就是 Windows 透過 ODBC 與 Linux 上的 MySQL 問題

個人針對測試結果的評論是
1.透過 5.00.11 版的 MyODBC 可以讓 Access 正常的將 UTF8 的自顯示出來
    這代表著 Access 是可以正常使用 UTF8 的編碼的

2.怪的問題就是在於 3.5.11 MYODBC 內設定了  SET NAMES utf8 ,竟然 Access 顯示出來會是類是這樣的亂碼:「?颤啉?蓢?」

綜合以上,怪問題真是多

harrier

  • 榮譽博士
  • 俺是博士!
  • *****
  • 文章數: 1856
  • 性別: 男
    • 檢視個人資料
    • 國屬武裝兵
關於 Access+MySQL+MyODBC+UTF-8 的問題
« 回覆 #9 於: 2007-03-14 10:15 »
引述: "bruce_wu"
目前測試結果如下:
1.使用 3.51.14 版的 MyODBC 是可以下達 SET NAMES utf8 ,但出來會是亂碼文字,沒下達的話是顯示 ??????? ,如改成下達 SET NAMES big5 ,那這樣字可以顯示出來,但有一些特殊字(超過BIG5範圍的字),就顯是不出來,會顯示 ?


下達 UTF8 出現亂碼,應該是程式端呼叫的字型只有 BIG5 對應字碼,如果能改用 UniCode 的字型,應該就解了。
BIG5 缺字沒法度..缺多了~
...90Net(90:1200/1203),GameNET(99:700/707),ALLNet(92:9200/3111),InfoNet(30:100/103)..MaximusCBCS(浮懷),AirNet,TenderNet,StormNet,FidoNet...
<<- www.nas.vg ->>

bruce_wu

  • 憂鬱的高中生
  • ***
  • 文章數: 91
    • 檢視個人資料
關於 Access+MySQL+MyODBC+UTF-8 的問題
« 回覆 #10 於: 2007-03-14 12:24 »
引述: "harrier"

下達 UTF8 出現亂碼,應該是程式端呼叫的字型只有 BIG5 對應字碼,如果能改用 UniCode 的字型,應該就解了。
BIG5 缺字沒法度..缺多了~


關於這問題,但是使用 5.00.11 版的 MyODBC 卻是能正常顯示的!
所以應該是 ODBC 的問題而非 程式端呼叫的字型 問題才對