2005-01-19
@ [ruby][java] JRubyで外部テキストファイルが文字化け(2)
やっぱりIOHandler#gets内で読み込んだバイトをそのままcharにキャストしていました。とりあえずIO#getsだけの文字化けを防ぐようにするパッチは下記のような感じかな。パフォーマンスとかおざなりにしているちょ〜手抜きなものですが。
--- src/org/jruby/util/IOHandler.java.orig 2005-01-15 20:49:56.000000000 +0900
+++ src/org/jruby/util/IOHandler.java 2005-01-20 00:23:47.000000000 +0900
@@ -147,11 +147,10 @@
return null;
}
- StringBuffer buffer = new StringBuffer();
-
+ java.util.List buffer = new java.util.ArrayList();
LineLoop : while (true) {
while (c != separator[0] && c != -1) {
- buffer.append((char) c);
+ buffer.add(new Byte((byte)c));
c = read();
}
for (int i = 0; i < separator.length; i++) {
@@ -160,7 +159,7 @@
} else if (c != separator[i]) {
continue LineLoop;
}
- buffer.append((char) c);
+ buffer.add(new Byte((byte)c));
if (i < separator.length - 1) {
c = read();
}
@@ -174,8 +173,12 @@
}
ungetc(c);
}
-
- return buffer.toString();
+ Byte[] tmp = (Byte[])buffer.toArray(new Byte[buffer.size()]);
+ byte[] bytes = new byte[tmp.length];
+ for (int i = 0; i < tmp.length; i++) {
+ bytes[i] = tmp[i].byteValue();
+ }
+ return new String(bytes);
}
public String getsEntireStream() {
[ツッコミを入れる]
2006-01-19
@ [apache] 体験にもとづく mod_rewrite の使い方
mod_rewriteの使い方。RewriteMapでPerlスクリプトで書き換えができるのは知りませんでした。
@ [memo] YAML
メモ。ほとんどはRubyist Magazineから。
- 本家
- プログラマーのための YAML 入門 (初級編)
- プログラマーのための YAML 入門 (中級編)
- プログラマーのための YAML 入門 (実践編)
- プログラマーのための YAML 入門 (検証編)
- PerlのYAMLモジュールのPOD邦訳
追記: Emacsのyaml-modeモードを探したがない模様。
[ツッコミを入れる]