[討論] 關於去掉 BIG-5 轉 UTF-8 衝碼字的反斜線

phpBB Installation & Usage Support
phpBB 2 安裝於各類型作業平台之問題討論;外掛問題,請到相關版面依發問格式發表!
(發表文章請按照公告格式發表,違者砍文)

版主: 版主管理群

版面規則
本區是討論關於 phpBB 2.0.X 架設安裝上的問題,只要有安裝任何外掛,請到外掛討論相關版面按照公告格式發表。
(發表文章請按照公告格式發表,違者砍文)
chiouss
竹貓忠實會員
竹貓忠實會員
文章: 1741
註冊時間: 2002-11-29 18:19

文章 chiouss »

過山雲 寫:請問操作方法與必備套件?
存成 php 檔然後和 sql 檔一起 upload 到你的機器上面執行
也可以直接當作 php-cli script 執行啦!但是要設定好就是了...

必備套件?iconv 的 php extension
fopen() 和 stripslashes() 都是內建 func.
--
原作者可以出來解釋補充 :D
ms11
星球普通子民
星球普通子民
文章: 14
註冊時間: 2006-06-06 17:02
聯繫:

文章 ms11 »

ms11 寫:

沒錯,用程式修改才會省事,但逐一列出跳脫繁體中文單字的清單還是太費事啦


big5 => utf-8 這是我的轉檔小工具,大家拿去試試看吧:

代碼: 選擇全部

<?

$fp = fopen("phpbb.sql", "r"); 
$content = fread($fp, filesize("phpbb.sql"));
fclose($fp);


$fp = fopen("phpbb_utf8.sql", "w"); 
$content = stripslashes($content);
$content = iconv("big5","utf-8",$content);
fwrite($fp, $content);
fclose($fp);

?>
.

1. 把這個檔案命名,然後存到 localhost 主目錄;怎樣命名??你喜歡就好,例如ms11.php

2. 把你的phpbb資料庫檔案丟出來 命名為 phpbb.sql ,存入主目錄。

3. 執行 ms11.php ,很快的他會在主目錄裡面給你送回 一個名為 phpbb2.sql 的utf-8編碼檔案.

4.最後,把phpbb2.sql送入資料庫,徹底檢查是否有誤;
(phpbb.sql 暫時保留備份以防作業失誤)


** :idea: 以上作業,從轉換、到存入資料庫,通通在localhost進行,確定無誤才能送上正式網站。切記

** :idea: 在比較新版本的 php ,iconv 不需要另外設定。

** :idea: 請檢查你的 phpinfo ,看看有沒有 iconv
否則,請開啟 php.ini ,在裡面找到 extension=php_iconv.dll,去掉前面的符號[;],
回存php.ini
重新啟動伺服器

ok~ 希望大家玩得愉快 上帝祝福大家 aman
chiouss
竹貓忠實會員
竹貓忠實會員
文章: 1741
註冊時間: 2002-11-29 18:19

文章 chiouss »

全部用 stripslashes() 來處理其實太暴力了一點,有可能會把一些不該清掉的 slash 也清掉...
ms11
星球普通子民
星球普通子民
文章: 14
註冊時間: 2006-06-06 17:02
聯繫:

文章 ms11 »

chiouss 寫:全部用 stripslashes() 來處理其實太暴力了一點,有可能會把一些不該清掉的 slash 也清掉...
不可能有不該清掉的 slash
twu2
星球普通子民
星球普通子民
文章: 18
註冊時間: 2002-07-24 10:15
來自: Eastwood City
聯繫:

文章 twu2 »

ms11 寫:
chiouss 寫:全部用 stripslashes() 來處理其實太暴力了一點,有可能會把一些不該清掉的 slash 也清掉...
不可能有不該清掉的 slash
除非你能確定原本的内容是經由 addslashes() 之類的函式處理過.
否則, 的確會多刪掉一下不該清的 slash. 我記得之前修正過 lifetype 的一個 bug, 就是這樣引起的.

例: c:\autoexec.bat 會被改成 c:autoexec.bat
ms11
星球普通子民
星球普通子民
文章: 14
註冊時間: 2006-06-06 17:02
聯繫:

文章 ms11 »

twu2 寫:
除非你能確定原本的内容是經由 addslashes() 之類的函式處理過.
否則, 的確會多刪掉一下不該清的 slash. .........
正是如此~ 必須確定原本的内容是經由 addslashes() 之類的函式處理過

例如,本樓樓主之所以開出那個跳脫字的清單......必然已經確定他的資料庫內容是addslashes()

本樓的招牌就叫做: 關於去掉 BIG-5 轉 UTF-8 衝碼字的反斜線

:idea: 給跳脫字逐一開立清單,實在很辛苦,個人才提供了這個小把戲給大家參考

:idea: 對於那些「有跳脫字反斜線困擾」的人來說,stripslashes() 絕對不會濫殺無辜

:idea: 資料庫內容沒有反斜線問題者,使用convertz之類的工具可能比較方便。一定要用本程序的話,請刪掉程序中有關 stripslashes這行

代碼: 選擇全部

<? 

$fp = fopen("phpbb.sql", "r"); 
$content = fread($fp, filesize("phpbb.sql")); 
fclose($fp); 


$fp = fopen("phpbb_utf8.sql", "w"); 


//特別注意:資料庫內容沒有反斜線問題者,請刪掉底下 stripslashes這行
$content = stripslashes($content);   

$content = iconv("big5","utf-8",$content); 
fwrite($fp, $content); 
fclose($fp); 

?>
最後由 ms11 於 2006-06-16 14:36 編輯,總共編輯了 1 次。
ms11
星球普通子民
星球普通子民
文章: 14
註冊時間: 2006-06-06 17:02
聯繫:

文章 ms11 »

:idea: 縱然這支小程序處理出來的資料庫內容不能用,也不會造成損失。
這是因為:這個轉換作業已經保存了原件.......phpbb.sql
這是因為:這個轉換作業是在localhost進行的,並沒有更動你的網站內容
頭像
心靈捕手
默默耕耘的老師
默默耕耘的老師
文章: 8510
註冊時間: 2004-04-30 01:54
來自: Taiwan

[補充說明] 建立 ConvertZ '詞彙轉換表' 的方法

文章 心靈捕手 »

最近, 也試著將個人的論壇資料, 做 big5 轉 utf-8 碼的處理,...
其中最大的問題是出在, 資料的匯入時, '衝碼字' 所造成的語法錯誤.

這個討論串的資訊, 提供了我莫大的幫助, 感謝各位網友的熱情分享!

--
將下列的代碼, 存成 xxx.dat (如: 去除反斜線.dat),
存入 /ConvertZ/ (資料夾中).

代碼: 選擇全部

-1,-1,-1,-1,-1,-1
修正前,修正後
么\\,么 
功\\,功
吒\\,吒 
吭\\,吭
沔\\,沔 
坼\\,坼
歿\\,歿
俞\\,俞 
枯\\,枯 
苒\\,苒 
娉\\,娉 
珮\\,珮 
豹\\,豹 
崤\\,崤 
淚\\,淚 
許\\,許 
廄\\,廄 
琵\\,琵 
跚\\,跚 
愧\\,愧 
稞\\,稞 
鈾\\,鈾 
暝\\,暝 
蓋\\,蓋 
墦\\,墦 
穀\\,穀 
閱\\,閱 
璞\\,璞 
餐\\,餐 
縷\\,縷 
擺\\,擺 
黠\\,黠 
孀\\,孀 
踊\\,踊 
髏\\,髏 
躡\\,躡 
尐\\,尐 
佢\\,佢 
汻\\,汻 
岤\\,岤  
垥\\,垥
柦\\,柦
胐\\,胐 
娖\\,娖 
涂\\,涂 
罡\\,罡 
偅\\,偅 
惝\\,惝 
牾\\,牾 
莍\\,莍 
傜\\,傜 
揊\\,揊 
焮\\,焮 
茻\\,茻 
鄃\\,鄃 
幋\\,幋 
滜\\,滜 
綅\\,綅 
赨\\,赨 
塿\\,塿 
縷\\,縷 
槙\\,槙 
擺\\,擺 
箤\\,箤 
踊\\,踊 
嫹\\,嫹 
髏\\,髏 
潿\\,潿 
蔌\\,蔌
醆\\,醆 
嬞\\,嬞 
獦\\,獦 
佢\\,佢 
螏\\,螏 
餤\\,餤 
燡\\,燡 
螰\\,螰 
駹\\,駹 
礒\\,礒 
鎪\\,鎪 
瀙\\,瀙
酀\\,酀
瀵\\,瀵 
騱\\,騱
酅\\,酅 
贕\\,贕 
鱋\\,鱋 
鱭\\,鱭
會\\,會
育\\,育
﹏\\,﹏
么\,么 
功\,功
吒\,吒 
吭\,吭
沔\,沔 
坼\,坼
歿\,歿
俞\,俞 
枯\,枯 
苒\,苒 
娉\,娉 
珮\,珮 
豹\,豹 
崤\,崤 
淚\,淚 
許\,許 
廄\,廄 
琵\,琵 
跚\,跚 
愧\,愧 
稞\,稞 
鈾\,鈾 
暝\,暝 
蓋\,蓋 
墦\,墦 
穀\,穀 
閱\,閱 
璞\,璞 
餐\,餐 
縷\,縷 
擺\,擺 
黠\,黠 
孀\,孀 
踊\,踊 
髏\,髏 
躡\,躡 
尐\,尐 
佢\,佢 
汻\,汻 
岤\,岤  
垥\,垥
柦\,柦
胐\,胐 
娖\,娖 
涂\,涂 
罡\,罡 
偅\,偅 
惝\,惝 
牾\,牾 
莍\,莍 
傜\,傜 
揊\,揊 
焮\,焮 
茻\,茻 
鄃\,鄃 
幋\,幋 
滜\,滜 
綅\,綅 
赨\,赨 
塿\,塿 
縷\,縷 
槙\,槙 
擺\,擺 
箤\,箤 
踊\,踊 
嫹\,嫹 
髏\,髏 
潿\,潿 
蔌\,蔌
醆\,醆 
嬞\,嬞 
獦\,獦 
佢\,佢 
螏\,螏 
餤\,餤 
燡\,燡 
螰\,螰 
駹\,駹 
礒\,礒 
鎪\,鎪 
瀙\,瀙
酀\,酀
瀵\,瀵 
騱\,騱
酅\,酅 
贕\,贕 
鱋\,鱋 
鱭\,鱭
會\,會
育\,育
﹏\,﹏

操作及測試方法, 請參考此討論串的第一篇文章.
http://phpbb-tw.net/phpbb/viewtopic.php?p=224872#224872

ps.
1. 推薦參考文章:
// [分享] 論壇與資料庫轉UTF-8碼成功經驗
http://phpbb-tw.net/phpbb/viewtopic.php?t=46090
// 許功蓋是何許人?
http://wang5555.dnsfor.me/phpbb2/viewtopic. ... 9573#29573
2. 如果您還有發現衝碼字的話, 歡迎隨時補充分享.
3. 將此文 '置頂' 以方便查詢.
最後由 心靈捕手 於 2007-04-21 07:02 編輯,總共編輯了 1 次。
施比受有福,祝福您好運! ^_^
歡迎光臨★★心靈捕手★★ :: 討論區
https://wang5555.dnsfor.me/phpBB3/
mikomel
星球普通子民
星球普通子民
文章: 15
註冊時間: 2005-09-15 23:30
聯繫:

文章 mikomel »

用convertz big5轉big5是可以用把文字置換,但不知為什麼會強行把朴字換成樸字…我把其他.dat和.cdx的字都刪了還是這樣…

試試找其他軟體
看到雜誌介紹Advanced Find and Replace,功能很好,而且.csv也是跟convertz的.dat用么\\,么的寫法,但要註冊-w-lll
Useful File Utilities不能處理4mb的sql檔
BK ReplaceEm
http://www.orbit.org/replace/
也可以批量改字,4mb也沒有問題,用法有點煩,而且置換檔的txt要寫成:
么\\

單是sql轉utf8也很難啊T.T
我愛小貓
krab
星球公民
星球公民
文章: 119
註冊時間: 2004-06-28 08:00

文章 krab »

我也被big5轉utf8搞得團團轉,用下面這個程式就簡單轉檔成功,有興趣的朋友可以參考
http://www.twvbb.com/vbb/thread/53/413/
請注意先依您的狀況修改index.php(填入)資料庫的名稱、使用者及密碼等等,整個目錄上傳伺服器後用瀏覽器執行就可以了。
過山雲
竹貓忠實會員
竹貓忠實會員
文章: 390
註冊時間: 2002-09-05 20:11
來自: 東都.承天府.萬年縣治.拱辰門北
聯繫:

文章 過山雲 »

嗚嗚 無法下載~~

註冊試試看。
圖檔
krab
星球公民
星球公民
文章: 119
註冊時間: 2004-06-28 08:00

文章 krab »

過山雲 寫:嗚嗚 無法下載~~

註冊試試看。
或者直接到作者的php源動力
http://phpforce.cn/bbs/archive/index.php/
進藤光
星球公民
星球公民
文章: 291
註冊時間: 2005-03-16 18:48
來自: BNW 時尚資訊網
聯繫:

文章 進藤光 »

我參考【心靈捕手】寫的部份,略加修改之後得到更完美的轉換方式,解決每行最後以【許功蓋】這些字結尾的時候,不會有 r 緊跟在後!轉換的結果應該比竹貓更完美! :mrgreen: :mrgreen: :mrgreen:

我多做了這個部份:

附錄:將BIG5轉UTF8編碼修正2.dat

代碼: 選擇全部

-1,-1,-1,-1,-1,-1
修正前,修正後
么r\n,么\r\n
功r\n,功\r\n
吒r\n,吒\r\n
吭r\n,吭\r\n
沔r\n,沔\r\n
坼r\n,坼\r\n
歿r\n,歿\r\n
俞r\n,俞\r\n
枯r\n,枯\r\n
苒r\n,苒\r\n
娉r\n,娉\r\n
珮r\n,珮\r\n
豹r\n,豹\r\n
崤r\n,崤\r\n
淚r\n,淚\r\n
許r\n,許\r\n
廄r\n,廄\r\n
琵r\n,琵\r\n
跚r\n,跚\r\n
愧r\n,愧\r\n
稞r\n,稞\r\n
鈾r\n,鈾\r\n
暝r\n,暝\r\n
蓋r\n,蓋\r\n
墦r\n,墦\r\n
穀r\n,穀\r\n
閱r\n,閱\r\n
璞r\n,璞\r\n
餐r\n,餐\r\n
縷r\n,縷\r\n
擺r\n,擺\r\n
黠r\n,黠\r\n
孀r\n,孀\r\n
踊r\n,踊\r\n
髏r\n,髏\r\n
躡r\n,躡\r\n
尐r\n,尐\r\n
佢r\n,佢\r\n
汻r\n,汻\r\n
岤r\n,岤\r\n
垥r\n,垥\r\n
柦r\n,柦\r\n
胐r\n,胐\r\n
娖r\n,娖\r\n
涂r\n,涂\r\n
罡r\n,罡\r\n
偅r\n,偅\r\n
惝r\n,惝\r\n
牾r\n,牾\r\n
莍r\n,莍\r\n
傜r\n,傜\r\n
揊r\n,揊\r\n
焮r\n,焮\r\n
茻r\n,茻\r\n
鄃r\n,鄃\r\n
幋r\n,幋\r\n
滜r\n,滜\r\n
綅r\n,綅\r\n
赨r\n,赨\r\n
塿r\n,塿\r\n
縷r\n,縷\r\n
槙r\n,槙\r\n
擺r\n,擺\r\n
箤r\n,箤\r\n
踊r\n,踊\r\n
嫹r\n,嫹\r\n
髏r\n,髏\r\n
潿r\n,潿\r\n
蔌r\n,蔌\r\n
醆r\n,醆\r\n
嬞r\n,嬞\r\n
獦r\n,獦\r\n
佢r\n,佢\r\n
螏r\n,螏\r\n
餤r\n,餤\r\n
燡r\n,燡\r\n
螰r\n,螰\r\n
駹r\n,駹\r\n
礒r\n,礒\r\n
鎪r\n,鎪\r\n
瀙r\n,瀙\r\n
酀r\n,酀\r\n
瀵r\n,瀵\r\n
騱r\n,騱\r\n
酅r\n,酅\r\n
贕r\n,贕\r\n
鱋r\n,鱋\r\n
鱭r\n,鱭\r\n
會r\n,會\r\n
育r\n,育\r\n
﹏r\n,﹏\r\n
由於沒有事先取得【心靈捕手】的同意,所以前面的轉碼我就沒有貼在自己的網站上。這個修正則是貼回來這裡【感恩】一下~ :mrgreen: :mrgreen: :mrgreen:

全部的轉換細節請參考這三篇:

將BIG-5網站轉成UTF-8多國語系-簡介篇: http://bbs.bnw.com.tw/conference/viewto ... =8133#8133

底下兩篇內容相同,只是版面的編排方式不同:

“電子雜誌” 版: BIG-5網站轉成UTF-8多國語系實作篇
“討論區” 版: 將BIG-5網站轉成UTF-8多國語系-實作篇
※架設伺服器主機:Mac mini G4-1.5GHz, 1GB RAM 三台
※架設主機作業系統:Mac OS X Server 10.4.2 Tiger
※我的上網方式:固定制 ADSL 4M/1M、3 IP
※安裝的伺服器:Apache 1.3.33 + php 4.3.11 + MySQL 5.0.19-max
※我的 phpBB2 版本:phpBB 2.0.21 UTF-8 版
※我的會議室網址: http://bbs.bnw.com.tw/conference/
頭像
心靈捕手
默默耕耘的老師
默默耕耘的老師
文章: 8510
註冊時間: 2004-04-30 01:54
來自: Taiwan

文章 心靈捕手 »

進藤光 寫:我參考【心靈捕手】寫的部份,略加修改之後得到更完美的轉換方式,解決每行最後以【許功蓋】這些字結尾的時候,不會有 r 緊跟在後!轉換的結果應該比竹貓更完美! :mrgreen: :mrgreen: :mrgreen:

我多做了這個部份:

附錄:將BIG5轉UTF8編碼修正2.dat
若依我個人的經驗, 則 '不會有 r 緊跟在後' 的現象;
竹貓 的現象, 應該是有經過特別處理所致.
施比受有福,祝福您好運! ^_^
歡迎光臨★★心靈捕手★★ :: 討論區
https://wang5555.dnsfor.me/phpBB3/
進藤光
星球公民
星球公民
文章: 291
註冊時間: 2005-03-16 18:48
來自: BNW 時尚資訊網
聯繫:

文章 進藤光 »

捕手是說當年的 “多國語系支援” 是嗎?我當時也有用過,後來發現問題多多,只要 phpBB 一改版,我就頭抱著燒~~ XD :mrgreen:
這次我轉換的是 XOOPS 2.0.13.2 BIG-5 版本的「聞字網」網站,站長沒有做過這類的 MOD (或是 Hack) 修改,直接看備份下來 BIG-5 碼的 .sql 檔案裡面就有這類的問題,我有把畫面抓下來,因此最後還是需要再增加一個簡單的轉換來對應。
hollo 說他兩邊轉拉丁語系,在匯入資料就變成 UTF-8 免轉換,喔~這麼神奇啊? :mrgreen: :mrgreen: :mrgreen:

在 BIG-5 原始碼這裡,【許】的後面只加上一個 \。
圖檔

其實在這裡也只加上一個【\】但是遇到原本的 \r\n 就變成 \\r\n 了。前面的轉換因為處理了【許\\】轉成【許】這樣的動作,所以這裡就會變成 r\n。除非是不處理【許\\】,一律只處理【許\】,大概就不用管 \\r\n 這個部份。

圖檔
※架設伺服器主機:Mac mini G4-1.5GHz, 1GB RAM 三台
※架設主機作業系統:Mac OS X Server 10.4.2 Tiger
※我的上網方式:固定制 ADSL 4M/1M、3 IP
※安裝的伺服器:Apache 1.3.33 + php 4.3.11 + MySQL 5.0.19-max
※我的 phpBB2 版本:phpBB 2.0.21 UTF-8 版
※我的會議室網址: http://bbs.bnw.com.tw/conference/
主題已鎖定

回到「phpBB 2 安裝與使用」