項目中使用ibatis以及他的sql-map-config.xml配置文件。
          配置文件(包括resource引用的各個xml文件)使用了缺省UTF-8編碼。
          在sql中包含了部分雙字節字符。
          調試期間發現一奇怪現象,hard coding部分的雙字節字符在頁面端顯示時亂碼了,而從DB中檢索出來的數據卻可以正常顯示。不解。
          深入跟蹤以后才明白:ibatis使用了class loader getResourceAsReader方法。
          由于getResourceAsReader根據系統本地字符集自動生成相應的Reader,無法指定Reader的字符集。所以得到的文件內容并沒有做正確的轉碼(UTF-8轉碼)。

          疑問:因為UTF-8是配置文件的缺省編碼,通常很少改動,所以這種現象應該還有其他人發現才對。有時間調查一下。
          成本:解決該問題約花多半天時間。其中相當部分浪費在一個莫名其妙的org.xml.sax.SAXParseException: Content is not allowed in prolog錯誤上。郁悶。


          追記:上述問題經查,官方論壇對應編號為IBATIS-340, IBATIS-349。在V2.3.0中通過在com.ibatis.common.resources.Resources中追加setCharset()接口解決。

          posted @ 2007-05-08 17:21 bluoy 閱讀(2437) | 評論 (0)編輯 收藏

          僅列出標題
          共4頁: 上一頁 1 2 3 4 
          主站蜘蛛池模板: 西丰县| 商都县| 乌拉特中旗| 红安县| 临泉县| 水富县| 宁陕县| 灌云县| 张家口市| 西畴县| 漳浦县| 嘉荫县| 清流县| 巍山| 达拉特旗| 滕州市| 昌图县| 和林格尔县| 德钦县| 陆良县| 甘孜县| 盐边县| 许昌市| 凤阳县| 阿克苏市| 古蔺县| 安福县| 英超| 岑溪市| 克山县| 施甸县| 太湖县| 三台县| 繁昌县| 临西县| 哈尔滨市| 贺兰县| 交城县| 定日县| 军事| 晋宁县|