看板 Database 關於我們 聯絡資訊
不是加個\就好了嗎@@ 你可以寫個小程式去檢查中文第二個byte 不寫程式的話 我有個拙作 https://github.com/buganini/bsdconv/ Download裡面有windows用的版本 你可以用 bsdconv ascii,big5:big5-5c,big5,ascii in.sql out.sql 就可以自動在適當的地方加上\ -------------------------------------- 關於big5 latin1 有些地方因為不是使用嚴格的cp950 (有UAO之類的) 所以被迫使用latin1 我目前的解法也是改phpmyadmin 偷工減料一點的話, 通常會遇到的只有big5跟utf-8 那就把語系檔砍一砍, 留下中英文 或是複製一份中文改個名字 然後在連線的地方根據語系去set names 這樣就可以簡單用選擇語系切換 -------------------------------------- 就我個人的經驗 mysql轉換應該沒這麼悽慘才對 其中一定有什麼誤會 ※ 引述《EAFV (流浪貓)》之銘言: : 我不確定這能不能幫到你什麼 : 不過我當初的轉換也是搞了很久都沒辦法 : 我那資料庫還更麻煩,有一堆unicode補完產生的日文 : 因為程式不支援的關係,也沒辦法治本的直接轉UTF8 : 之後是用土法鍊鋼的方式 : 寫程式去把資料一筆筆撈出來SET為big-5之後寫入到新版的mysql裡 : 至於校對方面 : 我自己測的情況是big5_bin跟big5_chinese_bin轉過去都會有問題 : 後來是設定為binary : 只是資料庫管理的部份,很多不支援big-5 : 我後來是自己改個另外big-5專用的phpmyadmin來用... 除非說當初每個table設定都不一樣 不然只要一次mysqldump出來的資料沒有亂碼 都可以簡單解決的 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.135.231.23 補充一下 跨這麼大版本升級還有可能遇到的問題是SQL語法不相容 有些人是用phpmyadmin去dump 應該也是可以 我是偏好用新的mysqldump去dump舊的mysql-server 通常再改一改.sql處理一下編碼問題 加個set names 就可以塞回去了 然後新版encoding/collation有一個很重要的地方 就是最好在create database的時候就指定好正確的編碼 這樣底下的其他設定就會自動跟著對 ※ 編輯: buganini 來自: 220.135.231.23 (12/25 01:02)
pingsky:若是我的問題的話, 簡單的話, mysql 5.1 若用 big5 不吃 12/25 01:03
不是不吃 只是要escape 現在還有很多系統是big5 也在mysql 5上跑得好好的 ※ 編輯: buganini 來自: 220.135.231.23 (12/25 01:06) 如果db裡面是設定big5 那就同我在原文推的 把.sql轉成utf-8 然後在.sql前面加上 set names "utf8"; 再倒回去 這個動作不是要把資料庫變成utf-8的 是讓mysql吃utf-8進去 然後轉成big5存 吃utf-8進去就不會有\的問題 ※ 編輯: buganini 來自: 220.135.231.23 (12/25 01:09) database編碼設為X client連上去set names Y mysql就會自動在X,Y之間轉換 所以設定正確的時候 UTF-8,Big5的database都可以直接用未經修改的phpmyadmin看到正確的資料 只有被迫用latin1存big5的才會有問題 (因為latin1 (應該就是iso-8859-1吧) 從00~7F~FF都有定義 所以可以當binary用 只是collation就破破的) ※ 編輯: buganini 來自: 220.135.231.23 (12/25 01:11)
pingsky:不吃'尠' 啊, 問題根本不是在 c5(\) 上 12/25 01:10
LPH66:那是 5C...另外這字是 UAO 放在 big5 的造字區的 12/25 01:13
你出問題的的byte sequence是fbf3 mysql5的big5用的是cp950的表 我在http://unicode.org/Public/MAPPINGS/VENDORS/MICSFT/WINDOWS/CP950.TXT 裡面找不到 也就是說他對mysql5來說根本就是illegal sequence 你可以把他取代為A148 (全形問號) 厄.. 其實他應該不是全形問號吧? 但我的terminal也不吃那個 所以我看到的就是全形問號XD 或是成為被迫使用latin1的族群 然後轉成utf-8去塞的話 也不會有illegal sequence的問題 進去的話有可能會transliterate成某個適當的符號 或是變? ※ 編輯: buganini 來自: 220.135.231.23 (12/25 01:20)
LPH66:和 UAO 的日文問題是同一件事... 12/25 01:18
pingsky:LPH66 大, 我是要打 5C 沒錯, 手殘又太快而打錯了.. 12/25 01:19
※ 編輯: buganini 來自: 220.135.231.23 (12/25 01:25)
buganini:好吧 我查出他是鹿兒了 XD 12/25 01:28
buganini:iconv的transliteration沒法處理這個字 只能變問號了 12/25 01:33