2009年12月19日 星期六

TiddlyWiki 中文存檔不會亂碼的方法

如果注意過 TiddlyWiki 的 HTML 檔案, 你會發現 Firefox 所儲存的中文是很直覺的內容,
tiddlywiki-chinese

但是 IE 或是 Google Chrome 所儲存的中文卻是『很難看得懂的編碼』(簡稱『亂碼』?)
tiddlywiki-html-entity

這是怎麼一回事, 有沒有辦法來改善呢?

.

TiddlyWiki 中文存檔不會亂碼的方法

先公布答案, 修改 Tiddlywiki 的 convertUnicodeToFileFormat 這個函數就可以了。下面以 Tiddlywiki 2.5.3 為例, 其他版本或許有些不同

** 只在我自己的環境測試過 Firefox, IE, Google Chrome, 不清楚這樣的修改會不會有副作用

原始程式

function convertUnicodeToFileFormat(s)
{
    return config.browser.isOpera || !window.netscape ? convertUnicodeToHtmlEntities(s) : mozConvertUnicodeToUTF8(s);
}

修改為

function convertUnicodeToFileFormat(s)
{
    return config.browser.isOpera || !window.netscape ? s : mozConvertUnicodeToUTF8(s);
}

.

HTML Entity

雖然答案不是那麼複雜, 但過程卻有些曲折 ……

跳過那些曲折的部份, 最後找到 &#xxxxx; 的編碼稱為

至於其他關鍵字, 從這次的經驗看來, 都沒有能夠『直指核心』, 例如像是 :

  • HTML Escape Sequence
  • HTML Escape Code
  • Tiddlywiki 存檔 亂碼
  • Encoding / decoding UTF8
  • escape, encodeURI, encodeURIComponent

.

轉換 HTML Entity

轉換 HTML Entity 最簡單的方法是把編碼的內容『貼到網頁的DOM元件』再讀回來, 就像 html entity decode (daniweb.com) 提供的 例子:

或者, 也有 iConv 這樣的工具可以使用, 只不過 iConv 似乎在 Linux 或 Cygwin 才會比較方便, 或者就有勞需要的人自行研究

最後, 說不定在 TiddlyWiki 的程式裡, 也以找到轉換 HTML Entity 的線索哦

.

2 意見:

發表您的回應
  1. Abhishek 提到...

    this html coding and its result is quite accurate

  2. 99th 提到...

    very useful infor. thanks a lot for this.

張貼留言