天天看點

Kuix #inc 的用法

今天有朋友問了我一個Kuix中用#inc的亂碼問題我才第一次了解有這個關鍵字,用法很簡單

<?xml version="1.0" encoding="UTF-8"?> 
     <screen title="天外飛仙"> 
      <textarea style="padding: 0 5 0 5; align: left;"> 
        <_text> 
            #inc(/xml/test.txt) 
        </_text> 
      </textarea> 
    </screen>       

其中test包含了中文,我測試了一下,UTF-8編碼儲存的确實有亂碼,于是儲存為GBK碼(如果清單沒有GBK則自己輸入),測試通過,看了一下源碼,其實是作者偷懶,很多外國的開源軟體其實都存在這樣的問題(Kuix,918行)

byte[] rawData = new byte[inputStream.available()];
inputStream.read(rawData);
characters = new String(rawData);
           

實際上是用系統預設的編碼解碼,中文系統是GBK,如果要保證不出問題就要修改源碼了,因為文本檔案無法預知其編碼,是以隻能擴充#inc語句增加編碼屬性,具體請參照Kuix.loadScreen