Migration Gallery from Big5 to UTF-8

「想要把Gallery從Big5轉換到UTF-8」,這個念頭其實已經很久了。在這個UTF-8盛行的年代,blog也是UTF-8,但是藝廊卻因為歷史的因素而停留在Big5。雖說Gallery有支援Localization,可以轉換界面的編碼,但是所有相簿的標題跟描述都還是Big5,一換成UTF-8之後就是亂碼。Gallery的網站中好像也沒有相關的轉換程式……

於是在某一個什麼事都不想幹的午後,看到了IRC上的某一句話,就突然立了個志,寫了個轉換程式出來……..

在PHP下要從Big5轉到UTF-8,其實還有點傷腦筋,在 zonble的這篇「PHP、XML、以及字元編碼:一則關於悲情、憤怒以及傷逝(資料)的故事」中有提到用XML、mbstring或是iconv來實作。由於不一定每個PHP都有在編繹時加入 mbstring 或是 iconv的選項,因此我本來是想使用某一獨立的模組或是class來作這一部份的轉換的。只是網路上找了一下好像沒找到,而我又不想自己花大時間重新發明輪子,最後只好退而求其次,呼叫UNIX下常見(文件上是這麼說的)的iconv獨立程式來作轉換。效率雖然差了點,不過反正轉換程式才跑一次,慢一點應該無所謂,只要不跑到timeout就好了 :)

需要的人可以到這兒下載,要注意的是,由於安全上的顧慮,在轉換完之後記得把script從Gallery目錄下移除 :)

文後附上簡單的README。

##############################################################################
# The Script is for migration from Big5 to UTF-8 for gallery (http://gallery.sourceforge.net/)
#
# To use this script, you don’t need to have mbstring or iconv compiled in PHP.
# But you have to have iconv in your system.
#
# If you have mbstring or iconv compiled in you PHP, you can rewrite the “big52utf8″ function
# to achieve the better performance(although such kind of converson tools do not urgely need
# “Performance”)
#
# The First thing you need, and you must to do is “BACKUP YOUR ALBUMS”!
#
# After upload the script on to your server , you have to put the script in you gallery dir.
# And modify the variable $iconv_loc and $albumdir.
# The open your browser and input the URL of this script.
#
# The script will first list all files it find to be translated from Big5 to UTF-8.
# You can click [UTF-8] to preview the result.
# When you are ready, click the “Convert all file from big5 to UTF-8 ” below the list.
# It will take a while, but is worth.
#
# At last, don’t forget to download the language pack from gallery main site and install it.
#
# Now, you can have your gallery “Unicoded” :)
#
# AND…DON’T FORGET TO DELETE THIS SCRIPT FROM YOUR GALLERY DIRECTORY, OR IT MAY CAUSE
# SERIOUS SECURITY PROBLEM!!!
#
# This script is GNU licensed, if you need any further help, you can e-mail me.
#
# PipperL (pipperl@serv.idv.tw)
# http://blog.serv.idv.tw
#
###################################################################################

 

延伸閱讀

文章資訊

 

目前有 15 個迴響 »

  1. PipperL says:

    忘了說:
    Gallery 的 zh-TW(UTF-8) Localization真的蠻鳥的…..

  2. ivan says:

    請問如果我是用php5的版本,是不是就不能用這個程式了?
    苦惱中~

  3. PipperL says:

    ivan:
    我沒裝過跟跑過 PHP5
    不過應該是可以用的才是。

    建議你備份之後試試。

  4. ivan says:

    我測試過了,好像不能用,我不知道在windows下,要怎麼處理。(位置、路徑之類的)
    因為php5沒有支援iconv.dll說,它自己內建語系轉換的功能了。

  5. ivan says:

    C:\AppServ\www\albums
    C:\php\ext
    這兩個路徑是直接在您提供的php裡對吧?

    不好意思,我有點不太知道怎麼處理。但如果您可以稍微簡單講一下在windows下怎麼弄?或者是我先換成php4來轉換,之後再換成php5嗎?

  6. PipperL says:

    我的做法其實很簡單:
    “由於不一定每個PHP都有在編繹時加入 mbstring 或是 iconv的選項,因此我本來是想使用某一獨立的模組或是class來作這一部份的轉換的。只是網路上找了一下好像沒找到,而我又不想自己花大時間重新發明輪子,最後只好退而求其次,呼叫UNIX下常見(文件上是這麼說的)的iconv獨立程式來作轉換。”

    如果 PHP5 有把內建語系轉換作出來(我看了一下,好像指的是內建iconv),,那就更簡單了,把big52utf8()這個函式改寫,直接呼叫iconv相關的函式就好了。

  7. ivan says:

    感謝PipperL兄,你可以寄給我新的這支php嗎?
    還有就是請教你有關windows系統下,這應該怎麼設定?如果按照我前面寫的路徑。

  8. PipperL says:

    ivan:
    我沒有改寫出新的程式啊。
    我只有看了一下原來的程式碼,找出需要修改的地方而已。
    要修改的話可能還是要靠你自己,不過應該不難,只要有一些基本的PHP基礎就可以。

  9. None says:

    只跑60秒的php

    奇怪的 php @_@
    參考 Migration Gallery from Big5 to UTF-8
    想把 Gallery1 從 big5 轉成 utf-8。
    奇怪的是明明 php.ini 裡的 max_execution_time 數值改了, phpinfo() 看起來也確實有改沒錯,可是跑一跑還是告訴我
    Fa…

  10. None says:

    只跑60秒的php – 續

    上回說到想轉換 Gallery1 的語系老是60秒就停止,搞了半天不曉得怎麼回事,剛剛 trace 一下才終於發現我又白爛了~”~
    在 Migration Gallery from Big5 to UTF-8 的轉換程式裡,會引入 Gallery1 原本的 i…

  11. YuanFen says:

    成功轉換了
    謝謝你的php程式,解決我苦惱的一段時間的問題

  12. Pank's Blog says:

    Convert Gallery 1.x from Big5 to UTF-8

    今天把 Gallery 從 Big5 轉換到 UTF-8 感謝 PipperL 所提供的 轉換程式 如果 albums 目錄不在 gallery 目錄下, 要改一下 $albumdir 執行後, 按最下面的 Convert all file from big5 to UTF-8 zh_TW.utf8 語系檔可以在 Galler…

  13. Anonymous says:

    終極邊疆BLOG

    「想要把Gallery從Big5轉換到UTF-8」,這個念頭其實已經很久了。在這個UTF-8盛行的年代,blog也是UTF-8,但是藝廊卻因為歷史的因素而停留在Big5。雖說Gallery有支援Localization,可以轉換界面的編碼

  14. BBS to WordPress via XML-RPC 實作說明…

    工具準備

    ANSI2HTML 之 function
    (可參考 bhttpd.c 或是直接…

  15. [...] 然後再根據PipperL的Migration Gallery from Big5 to UTF8 改寫gallery_big5_utf8.phps 作出EUC-JP轉SHIFT_JIS的script 大致上轉換沒問題 只有一個人名出了問題 可能是iconv裡EUC-JP轉SHIFT_JIS的table有小差錯吧 [...]

發表迴響