YUIAnt.jarとyuicompressorを使ってjsの文字化け問題を圧縮します。


前にjavaeyeの上の1つの招待状を見て、招待状の住所
参照
http://www.iteye.com/topic/368724
文中YUIAnt.jar  ダウンロードhttp://www.ubik-ingenierie.com/miscellanous/YUIAnt/ 直接にアクセスできない必要があります。代理が必要です。
この文はYUIAnt.jarとyuicompresse or-2.4.2.jarの二つのjarパッケージを使ってANt脚本の中でjsとcssを圧縮しましたが、使用中に一つの問題が発見されました。windowsの下で中国語のjsを圧縮すると文字化けが発生します。解決方法を教えてください。
YUIAnt.jarパッケージには、comp.yahoo.plotform.yui.com mpresor.YUICompress Taskの逆コンパイルされたソースコードの中に192行と196行があります。
/* 192*/                reader = new BufferedReader(new FileReader(tempFile));
/* 196*/                reader = new BufferedReader(new FileReader(inputFile));
必要なだけです。この二行のコードは変更されました。
/* 192 */                reader = new InputStreamReader(new FileInputStream(tempFile),charset);
/* 196 */                reader = new InputStreamReader(new FileInputStream(inputFile),charset);
ここで、変数String変数charset="UTF-8"があります。
このバグの原因は、FileReaderが指定されたファイルの文字コードをサポートしていないため、現在のシステムのデフォルトコードでファイルの入力バイトストリームを復号します。windowsのデフォルトコードは一般的にGBKです。しかし、一般的にJavaプログラムを書く人は国際化のために、ソースコードはUTF-8のコードを使っています。GBKのreaderを使ってUTF-8コードを読んでいます。もちろん、文字列を指定できるInputStreamReaderに変更すればいいです。
私はこの後のjarカバンの名前をYUIAnt-01.1.jarに変えました。必要な友達はダウンロードできます。その中で入出力を強制しました。全部UTF-8を使ってエンコードします。ダウンロードした友達は注意してください。