首頁 > 資訊 > Gallery Remote 中文解決方法

Gallery Remote 中文解決方法

2005年7月3日 yanni

Gallery 系統有一個叫 Gallery Remote 的 Java AP,可以很方便的管理 Gallery 上的像簿與像片,不過一直以來中文顯示都會有問題,所以我也一直不想用。
最近才突然發現有解決的方法了,這就是 Open Source 的好處呀!

到 CVS 上下載Gallery Remote 1.4 的 source,在 GalleryComm2.java 中加入一個 method 如下:

static String getEscapeString(String str) {
  if (str == null) {
    return null;
  }
  char[] bys = new char[str.length()];
  str.getChars(0, str.length(), bys, 0);
  StringBuffer ttsb = new StringBuffer();
  for(int k = 0; k < bys.length; k++) {
    switch (bys[k]) {
      case '':
      case '\'':
      case '\"':
        ttsb.append("");
        ttsb.append((char) bys[k]);
        break;
      case '\r':
        ttsb.append("\r");
        break;
      case '\n':
        ttsb.append("\n");
        break;
      case '\t':
        ttsb.append("\t");
        break;
      default:
        if (bys[k] < ' ' || bys[k] >= '\200') {
          //System.out.println("unicode...");
          ttsb.append("\u" /*243*/);
          String s13 = Integer.toHexString(bys[k]);
          for (int l = s13.length(); l < 4; l++) {
            ttsb.append('0');
          }
          ttsb.append(s13);
        }
        else {
          ttsb.append( (char) bys[k]);
        }
    }
  }
    return ttsb.toString();
}

然後找到 requestResponse() method 中的
p.load(new StringBufferInputStream(response)); 敘述,修改如下:

//p.load(new StringBufferInputStream(response));
p.load(new StringBufferInputStream(getEscapeString(response)));

這樣就能解決中文的問題囉~~~
這裡是我已前修改重新 compile 過的版本,先安裝原來的版本,再下載修正檔覆蓋至安裝目錄就可以用了。

修正前:

修正後:

Categories: 資訊 Tags:
  1. vega
    2005年7月6日01:08 | #1

    靠~超好用的啦

  2. violet
    2006年3月6日02:09 | #2

    感謝站長提供這麼棒的修正方式,請教一個問題我目前使用GalleryRemote 版本是v1.5.1-b15,當我下載使用您的修正程式也順利的解決了中文顯示問題,但是出現了了一個小問題,就是每次開啟GalleryRemote 程式都會出現一個警告訊息說是偵測不到imagemagick,可否請您協助幫忙重新 compile v1.5.1-b15 可以使用的GalleryRemote.jar 檔案.
    萬分感激!!!

  3. 2006年3月6日21:43 | #3

    Hi, 我在網站上提供的是用1.4的source code編譯的,
    上次電腦重灌後就一直沒用GalleryRemote了,所以也沒注意到出了1.5。

    我剛剛測試了一下,裝 v1.5.1-b15(NoVM版),但是用1.4 的 GalleryRemote.jar取代掉,並沒有出現您提到偵測不到 imagemagick的訊息(我是用JRE 1.5.0_06)。

    可是因為我的 Gallery更新到 2.0 版了,這樣反而會出現另一種亂碼,您的 Gallery是1.5的嗎?

    不過目前似乎沒辦法從 Sourceforge的 CVS server下載 1.5 版的 source code,等可以下載後我再用1.5的重新 compile試試。

  4. 2007年10月16日03:24 | #4
  1. 目前尚無任何 trackbacks 和 pingbacks。
目前尚未開放評論的功能。