1 頁 (共 1 頁)

[問題]FreeBSD下備份的SQL 不能在windows下

發表於 : 2004-10-05 23:46
jawa560
爬了一堆文,很奇怪都看不到類似問題,難道大家都沒這個問題嗎?
不管是用phpMyAdmin或phpBB2 後台備份,local 端 的phpMyAdmin 都無法接受, 我猜是許功蓋(5C碼) 的問題!

架站在虛擬主機, 另備份一份在自己Local 端 windows 的環境中RUN 兼CODING 測試, 應該是很多資深大大常RUN的環境, 是否大家都很順利呢? 請指點一下,萬分感激!


遠端主機: FreeBSD 4.5
phpMyAdmin 2.5.4
MySQL 版本 4.0.16-nt
CHARSET ISO-8859-1


local 端主機:
windows2000
AppServ Version 2.3.0 for Windows
includes :
- Apache WebServer Version 1.3.29
- PHP Script Language Version 4.3.4
- MySQL Database Version 4.0.16
- Zend Optimizer Version 2.1.0a
- phpMyAdmin Database Manager Version 2.5.4

發表於 : 2004-10-05 23:58
jawa560
另外請教:
1.UTF-8 的版本是否要自己轉換呢(例如用ConvertZ)? 所有檔都需要轉嗎(PHP,tpl 及語系檔)
2.如果是已經在run 的論壇,是否將資料庫備份下來,轉換後再上傳呢?
3.原來已經入MySQL資料庫的BIG5 資料(已經有ADDSLASH) , 可以無痛直接轉UTF-8 嗎?
4.到底改為UTF-8 版好呢? 還是多國語言修正就好? (頂多只有繁簡的需求, 但必須無許功蓋問題)
5.舊文有提過,似乎只有Linux (新版本?)支援UTF-8 , 是真的嗎? 那 FreeBSD 沒有嗎?

不好意思,如果有他文討論過,請指點一下,因為實在扒不出舊文!

發表於 : 2004-10-06 10:53
幻狼神威
jawa560 寫:架站在虛擬主機, 另備份一份在自己Local 端 windows 的環境中RUN 兼CODING 測試, 應該是很多資深大大常RUN的環境, 是否大家都很順利呢? 請指點一下,萬分感激!

遠端主機: FreeBSD 4.5
phpMyAdmin 2.5.4
MySQL 版本 4.0.16-nt
CHARSET ISO-8859-1
基本上,你的 CHARSET 是指Apache的?還是php的?還是MySQL的?
我的第一直覺應該是Apache吧......

正體中文若不是架在BIG5或UTF-8的環境下,通常都會有一些神奇的問題發生.....
jawa560 寫:另外請教:
1.UTF-8 的版本是否要自己轉換呢(例如用ConvertZ)? 所有檔都需要轉嗎(PHP,tpl 及語系檔)
我是沒試過,不過理論上是轉換有中文字出現的檔案就好了,基本上就是語系檔。
jawa560 寫:2.如果是已經在run 的論壇,是否將資料庫備份下來,轉換後再上傳呢?
理論上是如此,只要主機環境和設定都有支援就沒問題。
jawa560 寫:3.原來已經入MySQL資料庫的BIG5 資料(已經有ADDSLASH) , 可以無痛直接轉UTF-8 嗎?
可以。竹貓有不少成功轉換的例子,不過如果後悔要再改回BIG5,聽說就不是普通程度的痛了,因此轉換前請三思......
jawa560 寫:4.到底改為UTF-8 版好呢? 還是多國語言修正就好? (頂多只有繁簡的需求, 但必須無許功蓋問題)
UTF-8的確是沒有許功蓋的問題,還可以多國語文並存,但是有以下缺點:
  1. UTF-8 是非固定長度的多位元編碼,編碼長度 1~4 bytes 與固定長度 2 bytes 的 Big5 或 gb2312 不同,中文大多落在 3 bytes 的編碼範圍,所以資料庫空間的使用量會多出 1/2 左右。
  2. 用以寄發 Email 的標題及內容都會變成亂碼
  3. 無法隨意調整字體
  4. 無法繁簡互轉
最早雙字元問題是由於mysql本身不支援UTF-8,使用2進位寫入資料庫可解決 但卻會造成big5錯誤,在Linux或Freebsd上使用java的方式解決......不過目前的mysql 4已無此問題。

因為許功蓋問題主要是使用了 兩個 PHP 函數(stripslashes、htmlentities)所影響,而現在BIG5的在這個問題上都有解法,所以衝碼其實也不算是很大的問題。
jawa560 寫:5.舊文有提過,似乎只有Linux (新版本?)支援UTF-8 , 是真的嗎? 那 FreeBSD 沒有嗎?

不好意思,如果有他文討論過,請指點一下,因為實在扒不出舊文!
FreeBSD .......好像有,我目前是想用看看但還沒用過.....和Linux一樣的地方是,除了核心所有相關的套件也要支援才行。愈新版的是一定會納入支援,因為照目前看來 UTF-8 似乎應該是未來的趨勢了.......

發表於 : 2004-10-06 14:52
ayaya
我想請問一下:

我之前已做過多國語言修正

還有修正過「轉BIG5日文為JIS日文」
( http://leoboard.cpatch.org/cgi-bin/topi ... 506&show=0 )

那麼如果我再把論壇UTF-8化會不會有問題呢?

還是在UTF-8化之前,要把上述兩項修正還原?

發表於 : 2004-10-06 16:51
jawa560
感謝版主大大清楚詳盡的解說,無盡感激中...:-P

補註 phpinfo 顯示資料:
Apache的 HTTP_ACCEPT_LANGUAGE 是 zh-tw ,沒看到 CHARSET 資訊

iconv 的設定值:
Directive Local Value Master Value
iconv.input_encoding ISO-8859-1 ISO-8859-1
iconv.internal_encoding ISO-8859-1 ISO-8859-1
iconv.output_encoding ISO-8859-1 ISO-8859-1

系統資訊:
LC_CTYPE is_IS.ISO_8859-1
MM_CHARSET ISO-8859-1
ENABLE_STARTUP_LOCALE zh_TW.Big5
LANG zh_TW.Big5

下面這條,還請大家提供使用經驗一下:
架站在虛擬主機, 另備份一份在自己Local 端 windows 的環境中RUN 兼CODING 測試, 應該是很多資深大大常RUN的環境, 是否大家都很順利呢? 請指點一下,萬分感激!
因為備份下來的SQL檔已經加了SLASH,是否還必須經過什麼轉換才能入LOCAL端環境下的MySQL 資料庫呢?

另外請教,一隻程式是如何判別檔案裡面的文字是什麼編碼呢?因為一般文字檔案應該沒有什麼檔頭資訊才對啊!