只要跟編碼格式扯上關係,有些簡單的問題變得就不簡單了~_~
在中文系統中,編碼始終都是程式設計中相當讓人討厭的一部份。前面試過在Rhino環境下讀寫"UTF-8"編碼格式的文字檔案,結果看來還正確。那麼,如果Rhino的JavaScript檔案使用"UTF-8"編碼格式的話?特別是要程式內夾雜中文字串時?
底下是簡單的顯示中文字串程式碼,特別夾上"BIG5"編碼格式不存在的「堃」字,所以必須儲存成"UTF-8"編碼格式的檔案(不然「堃」字會無法顯示):
/**
*
* Rhino字元編碼。
*
* @author ace
*
* @version 2011/08/03 v0.1
*
* @see <a href="http://www.mozilla.org/rhino/ScriptingJava.html">Scripting Java</a>
* @see <a href="https://developer.mozilla.org/en/Scripting_Java">Scripting Java</a>
* @see <a href="https://developer.mozilla.org/en/JavaScript/Reference/Statements/try...catch">try...catch</a>
* @see <a href="http://www.javascriptkit.com/javatutors/trycatch.shtml">Handling runtime errors in JavaScript using try/catch/finally</a>
*
* @see <a href="http://caterpillar.onlyfun.net/Gossip/Encoding/UnicodeUTF.html">Unicode 與 UTF</a>
* @see <a href="http://caterpillar.onlyfun.net/Gossip/Encoding/UTF8.html">UTF-8</a>
*
* @description
*
*/
try {
// 開始執行程式
print("Rhino script start running...");
print("顯示測試資料!");
print("阿堃!");
}
catch (e) {
print("執行過程有誤,錯誤訊息:" + e.description);
}
finally {
}
執行結果如下圖:
在中文字串的地方出現語法錯誤的訊息(syntax error),應該是Rhino無法讀取"UTF-8"編碼格式的JavaScript檔案。
之前也曾經遇到使用"UTF-8"編碼格式的JavaScript檔案,但當時使用的是WSH的執行環境─應用WSF(Windows Script Files)架構進行JavaScript程式模組化,並不能用來處理這個問題。

沒有留言:
張貼留言