# Jcode.rb ruby-1.9

**URL:** <https://www.ruby-forum.com/t/jcode-rb-ruby-1-9/97464>\
**Category:** Development\
**Created:** [July 7, 2006, 8:19am UTC](https://www.ruby-forum.com/t/jcode-rb-ruby-1-9/97464 "2006-07-07T08:19:07Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![WATANABE\_Tetsuya](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/w/46a35a/32.png) [@WATANABE\_Tetsuya](https://www.ruby-forum.com/u/WATANABE_Tetsuya)\
**Post date:** [July 7, 2006, 8:19am UTC](https://www.ruby-forum.com/t/jcode-rb-ruby-1-9/97464/1 "2006-07-07T08:19:07Z")

</div>

e$BEOJUE/Li$G$9!#e(B

jcode.rb e$B$G%(%i!\<$,$G$^$7$?$N$G!"$_$7$i$;$7$Fe(B  
e$B$_$-$^$9!#e(B

* * *

## $ ruby -v ruby 1.9.0 (2006-07-07) [i686-linux]

e$B$K$F!"\<!$N%9%/%j%W%H$rF0$+$9$He(B

* * *

#! /usr/local/bin/ruby -Ke

# e$B%F%9%H;~$Oe(B EUC-kanji e$B$G9T$J$$$^$7$?e(B

require ‘jcode’

p ‘abc’.tr(‘a-z’, ‘e$B#ae(B-e$B#ze(B’)

* * *

e$B\<!$N%(%i!\<$,$G$^$9!#e(B

* * *

$ ruby -Ke jcode1.rb  
/t/lib/ruby/1.9/jcode.rb:83:in `String#+': can't convert Fixnum into String (TypeError) from /t/lib/ruby/1.9/jcode.rb:83:in`String#succ!’  
from /t/lib/ruby/1.9/jcode.rb:93:in `succ' from /t/lib/ruby/1.9/jcode.rb:111:in`\_expand\_ch’  
from /t/lib/ruby/1.9/jcode.rb:100:in `_expand_ch' from /t/lib/ruby/1.9/jcode.rb:120:in`expand\_ch\_hash’  
from /t/lib/ruby/1.9/jcode.rb:141:in `String#tr!' from /t/lib/ruby/1.9/jcode.rb:147:in`String#tr’  
from jcode1.rb:10  
zsh: 15666 exit 1 ruby jcode1.rb

---

<div class="post-metadata">

**Author:** ![WATANABE\_Tetsuya](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/w/46a35a/32.png) [@WATANABE\_Tetsuya](https://www.ruby-forum.com/u/WATANABE_Tetsuya)\
**Post date:** [July 7, 2006, 9:14am UTC](https://www.ruby-forum.com/t/jcode-rb-ruby-1-9/97464/2 "2006-07-07T09:14:43Z")

</div>

e$B$J$+$@$G$9!#e(B

At Fri, 7 Jul 2006 15:16:01 +0900,  
WATANABE Tetsuya wrote in [ruby-dev:28979]:

> from /t/lib/ruby/1.9/jcode.rb:141:in `String#tr!' from /t/lib/ruby/1.9/jcode.rb:147:in`String#tr’  
> from jcode1.rb:10

String#[]e$B$,0lJ8;z$Ne(BStringe$B$rJV$9$h$&$K$J$C$?1F6A$G$9$M!#e(B

e$B$b$&$R$H$D!"e(BMSBe$B$NN)$C$F$$$kJ8;z$K$D$$$Fe(BString#orde$B$,Ii$NCM$rJV$7e(B  
e$B$F$$$^$9!#e(B

$ ./ruby -v -e ‘p “e$B#ae(B”[-1].ord’  
ruby 1.9.0 (2006-07-07) [i686-linux]  
-31

1.8e$B$Ne(BString#[]e$B$G$O%^%9%/$5$l$F$$$^$9!#e(B

$ ./i486-linux/miniruby -v -e ‘p “e$B#ae(B”[-1]’  
ruby 1.8.5 (2006-07-07) [i686-linux]  
225

# Index: string.c

RCS file: /cvs/ruby/src/ruby/string.c,v  
retrieving revision 1.252  
diff -p -u -2 -r1.252 string.c  
— string.c 3 Jul 2006 20:07:09 -0000 1.252  
+++ string.c 7 Jul 2006 07:03:17 -0000  
@@ -4071,5 +4071,5 @@ rb\_str\_ord(VALUE s)  
RSTRING(s)-\>len);  
}

- c = RSTRING(s)-\>ptr[0];

- c = RSTRING(s)-\>ptr[0] & 0xff;  
return INT2NUM©;  
}  
Index: lib/jcode.rb  
===================================================================  
RCS file: /cvs/ruby/src/ruby/lib/jcode.rb,v  
retrieving revision 1.27  
diff -p -u -2 -r1.27 jcode.rb  
— lib/jcode.rb 9 Jun 2006 21:20:02 -0000 1.27  
+++ lib/jcode.rb 7 Jul 2006 06:48:06 -0000  
@@ -80,7 +80,10 @@ class String  
if self =~ reg  
succ\_table = SUCC[$KCODE[0,1].downcase]
- 

```
 last1 = self[-1].ord

```

- 

```
 last2 = self[-2].ord
 begin

```

- self[-1] += succ\_table[self[-1]]
- self[-2] += 1 if self[-1] == 0

- last1 += succ\_table[last1]
- last2 += 1 if last1 == 0
- self[-2…-1] = [last2, last1].pack(“C\*”)  
end while self !~ reg  
self

---

<div class="post-metadata">

**Author:** ![WATANABE\_Tetsuya](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/w/46a35a/32.png) [@WATANABE\_Tetsuya](https://www.ruby-forum.com/u/WATANABE_Tetsuya)\
**Post date:** [July 7, 2006, 10:29am UTC](https://www.ruby-forum.com/t/jcode-rb-ruby-1-9/97464/3 "2006-07-07T10:29:45Z")

</div>

e$B$^$D$b$He(B e$B$f$-$R$m$G$9e(B

In message “Re: [ruby-dev:28980] Re: jcode.rb ruby-1.9”  
on Fri, 7 Jul 2006 16:12:01 +0900, removed\_email\_address@domain.invalid writes:  
|At Fri, 7 Jul 2006 15:16:01 +0900,  
|WATANABE Tetsuya wrote in [ruby-dev:28979]:  
|\> e$B\<!$N%(%i!\<$,$G$^$9!#e(B  
|\> $ ruby -Ke jcode1.rb  
|\> /t/lib/ruby/1.9/jcode.rb:83:in `String#+’: can’t convert Fixnum into String (TypeError)

|String#[]e$B$,0lJ8;z$Ne(BStringe$B$rJV$9$h$&$K$J$C$?1F6A$G$9$M!#e(B  
|  
|e$B$b$&$R$H$D!"e(BMSBe$B$NN)$C$F$$$kJ8;z$K$D$$$Fe(BString#orde$B$,Ii$NCM$rJV$7e(B  
|e$B$F$$$^$9!#e(B

|— string.c 3 Jul 2006 20:07:09 -0000 1.252  
|+++ string.c 7 Jul 2006 07:03:17 -0000

e$B%3%\_%C%H$7$F$/$@$5$$!#e(B
