# Default script encoding and -K option

**URL:** <https://www.ruby-forum.com/t/default-script-encoding-and-k-option/126334>\
**Category:** Development\
**Created:** [January 17, 2008, 3:00pm UTC](https://www.ruby-forum.com/t/default-script-encoding-and-k-option/126334 "2008-01-17T15:00:55Z")\
**Posts on this page:** 9\
**Page:** 1

<div class="post-metadata">

**Author:** ![sheepman](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/d07c76/32.png) [@sheepman](https://www.ruby-forum.com/u/sheepman)\
**Post date:** [January 17, 2008, 3:00pm UTC](https://www.ruby-forum.com/t/default-script-encoding-and-k-option/126334/1 "2008-01-17T15:00:55Z")

</div>

e$B$3$s$P$s$Oe(B sheepman e$B$G$9!#e(B

[ruby-dev:33140] e$B$G$J$+$`$i$5$s$,=q$+$l$F$$$^$9$,!"e(B

On Thu, 17 Jan 2008 09:42:43 +0900  
“U.Nakamura” [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> e$B$=$7$F!“e(B1.9e$B$Oe(B-Ke$B$r0z$-B3$-8\_49@-$N$?$a$K%5%]!\<%H$7$F$k$s$@$+$ie(B  
> 1.8e$B$HF1$8$h$&$KF0$+$;$k$O$:!”$J$N$G$9$,e(B…

1.9 e$B$Ne(B -K e$B%_%W%7%g%s$O%0%m!\<%P%k$G$O$J$$$N$G!"e(B  
require e$B$7$?%i%$%V%i%j$K$O1F6A$r$_$h$$;$^$;$s!#e(B  
e$B0J2\<$N$h$&$Je(B shebang e$B$r=q$$$F$$$J$$%i%$%V%i%j$G$Oe(B  
1.8 e$B$H0c$&F0:n$r$7$^$9!#e(B

$ cat t.rb  
require ‘lib’  
f(“e$B$$$m$Oe(B”)

$ cat lib.rb  
def f(s)  
p $& if /./ =~ “e$B4A;ze(B”  
p $& if /./ =~ s  
end

$ ruby-1.8 -vKe t.rb  
ruby 1.8.6 (2007-12-02 patchlevel 5000) [i686-linux]  
“e$B4Ae(B”  
“e$B$$e(B”

$ ruby-1.9 -vKe t.rb  
ruby 1.9.0 (2008-01-16 revision 0) [i686-linux]  
“\xB4”  
“e$B$$e(B”

e$B%3%^%s%I%i%$%s$Ne(B -K e$B%\*%W%7%g%s$Oe(B shebang e$B$be(B magic  
comment e$B$be(B  
e$B=q$$$F$$$J$$%i%$%V%i%j$N%9%/%j%W%H%(%s%3!\<%G%#%s%0$K$b:nMQ$9$k$H$$$&e(B  
e$B$N$O$I$&$G$7$g$&$+!#e(B

---

<div class="post-metadata">

**Author:** ![sheepman](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/d07c76/32.png) [@sheepman](https://www.ruby-forum.com/u/sheepman)\
**Post date:** [January 18, 2008, 6:28am UTC](https://www.ruby-forum.com/t/default-script-encoding-and-k-option/126334/2 "2008-01-18T06:28:33Z")

</div>

e$B$3$s$K$A$O!"$J$+$`$ie(B(e$B$&e(B)e$B$G$9!#e(B

In message “[ruby-dev:33156] default script encoding and -K option”  
on Jan.17,2008 22:47:14, [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:  
| \> e$B$=$7$F!“e(B1.9e$B$Oe(B-Ke$B$r0z$-B3$-8\_49@-$N$?$a$K%5%]!\<%H$7$F$k$s$@$+$ie(B  
| \> 1.8e$B$HF1$8$h$&$KF0$+$;$k$O$:!”$J$N$G$9$,e(B…  
|  
| 1.9 e$B$Ne(B -K e$B%_%W%7%g%s$O%0%m!\<%P%k$G$O$J$$$N$G!"e(B  
| require e$B$7$?%i%$%V%i%j$K$O1F6A$r$_$h$$;$^$;$s!#e(B

e$B$J!"$J$s$@$C$F!\<e(B(AAry

| e$B%3%^%s%I%i%$%s$Ne(B -K e$B%\*%W%7%g%s$Oe(B shebang e$B$be(B magic comment e$B$be(B  
| e$B=q$$$F$$$J$$%i%$%V%i%j$N%9%/%j%W%H%(%s%3!\<%G%#%s%0$K$b:nMQ$9$k$H$$$&e(B  
| e$B$N$O$I$&$G$7$g$&$+!#e(B

e$B%i%$%V%i%j$Ke(Bshebange$B$,=q$$$F$"$k\>l9g$O=\>Mh$I$\*$jL5;k$G$$$$$H;We(B  
e$B$$$^$9$,!"e(Bmagic  
commente$B$,$J$$%i%$%V%i%j$K4X$7$F$O%3%^%s%I%i%$e(B  
e$B%s$^$?$O%a%$%s%9%/%j%W%H$Ne(Bshebange$B$Ne(B-Ke$B$,:nMQ$9$Y$-$@$H;W$$$^$9!#e(B

e$B$H$$$&$+!“%i%$%V%i%j$O$\*$m$+!”%a%$%s%9%/%j%W%H$K$9$ie(B-Ke$B$,8z$+e(B  
e$B$J$/$J$C$F$$$k$N$G$9$,!"$3$l$O$o$6$H$G$9$+e(B?  
(r15099e$B$N$^$D$b$H$5$s$Ne(Bcommit)

e$B$=$l$G$O!#e(B

---

<div class="post-metadata">

**Author:** ![sheepman](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/d07c76/32.png) [@sheepman](https://www.ruby-forum.com/u/sheepman)\
**Post date:** [January 18, 2008, 6:34am UTC](https://www.ruby-forum.com/t/default-script-encoding-and-k-option/126334/3 "2008-01-18T06:34:59Z")

</div>

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

In message “Re: [ruby-dev:33167] Re: default script encoding and -K  
option”  
on Fri, 18 Jan 2008 14:25:48 +0900, “U.Nakamura”  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) writes:

|e$B%i%$%V%i%j$Ke(Bshebange$B$,=q$$$F$"$k\>l9g$O=\>Mh$I$\*$jL5;k$G$$$$$H;We(B  
|e$B$$$^$9$,!"e(Bmagic commente$B$,$J$$%i%$%V%i%j$K4X$7$F$O%3%^%s%I%i%$e(B  
|e$B%s$^$?$O%a%$%s%9%/%j%W%H$Ne(Bshebange$B$Ne(B-Ke$B$,:nMQ$9$Y$-$@$H;W$$$^$9!#e(B

e$B$G$9$M!#e(B

|e$B$H$$$&$+!“%i%$%V%i%j$O$\*$m$+!”%a%$%s%9%/%j%W%H$K$9$ie(B-Ke$B$,8z$+e(B  
|e$B$J$/$J$C$F$$$k$N$G$9$,!"$3$l$O$o$6$H$G$9$+e(B?  
|(r15099e$B$N$^$D$b$H$5$s$Ne(Bcommit)

e$B$o$6$H$8$c$J$$$G$9!#$I$&$d$C$FD\>$9$+$O$H$b$+$/!#e(B

---

<div class="post-metadata">

**Author:** ![sheepman](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/d07c76/32.png) [@sheepman](https://www.ruby-forum.com/u/sheepman)\
**Post date:** [January 18, 2008, 8:14am UTC](https://www.ruby-forum.com/t/default-script-encoding-and-k-option/126334/4 "2008-01-18T08:14:07Z")

</div>

e$B$3$s$K$A$O!"$J$+$`$ie(B(e$B$&e(B)e$B$G$9!#e(B

In message “[ruby-dev:33168] Re: default script encoding and -K option”  
on Jan.18,2008 14:34:23, [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:  
| |e$B$H$$$&$+!“%i%$%V%i%j$O$\*$m$+!”%a%$%s%9%/%j%W%H$K$9$ie(B-Ke$B$,8z$+e(B  
| |e$B$J$/$J$C$F$$$k$N$G$9$,!"$3$l$O$o$6$H$G$9$+e(B?  
| |(r15099e$B$N$^$D$b$H$5$s$Ne(Bcommit)  
|  
| e$B$o$6$H$8$c$J$$$G$9!#$I$&$d$C$FD\>$9$+$O$H$b$+$/!#e(B

e$BN;2r$G$9!#e(B

e$B$D$$$G$J$N$GJ9$-$^$9$,!“e(B–encodinge$B$Oe(Bdefault\_externale$B$K$@$1:ne(B  
e$BMQ$7$F%9%/%j%W%H$N%(%s%3!\<%G%#%s%0$K$O:nMQ$7$J$$J}$,$$$$$N$Ge(B  
e$B$O$J$$$+$H$$$&9M$($r;d$O;}$C$F$$$k$N$G$9$,!”$I$&$G$7$g$&$+e(B?  
(-Ke$B$O8\_49@-$N$?$a$KN\>J}$K:nMQ$9$k$^$^$Ge(BOK)  
e$B$=$&$7$J$$$H!"e(BASCIIe$BHs8\_49$N%(%s%3!\<%G%#%s%0$re(B–encodinge$B$K;XDje(B  
e$B$7$?\>l9g$K!"e(Bmagic  
commente$B$N$J$$%9%/%j%W%H$OA4$FF0:n$7$J$/$J$Ce(B  
e$B$F$7$^$$$^$9!#e(B

e$B$?$@!"!V$@$+$i@dBP$Ke(Bmagic  
commente$B$r=q$3$&$M!W$H$$$&$N$b@5$7$$e(B  
e$B5$$,$9$k$N$G!"K\Ev$O$I$A$i$,$$$$$N$+$OH=CG$,$D$$$F$$$^$;$s!#e(B

e$B$=$l$G$O!#e(B

---

<div class="post-metadata">

**Author:** ![sheepman](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/d07c76/32.png) [@sheepman](https://www.ruby-forum.com/u/sheepman)\
**Post date:** [January 18, 2008, 8:29am UTC](https://www.ruby-forum.com/t/default-script-encoding-and-k-option/126334/5 "2008-01-18T08:29:57Z")

</div>

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

In message “Re: [ruby-dev:33169] Re: default script encoding and -K  
option”  
on Fri, 18 Jan 2008 16:12:42 +0900, “U.Nakamura”  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) writes:

|e$B$D$$$G$J$N$GJ9$-$^$9$,!“e(B–encodinge$B$Oe(Bdefault\_externale$B$K$@$1:ne(B  
|e$BMQ$7$F%9%/%j%W%H$N%(%s%3!\<%G%#%s%0$K$O:nMQ$7$J$$J}$,$$$$$N$Ge(B  
|e$B$O$J$$$+$H$$$&9M$($r;d$O;}$C$F$$$k$N$G$9$,!”$I$&$G$7$g$&$+e(B?  
|(-Ke$B$O8\_49@-$N$?$a$KN\>J}$K:nMQ$9$k$^$^$Ge(BOK)

e$BF10U$7$^$9!#e(B

---

<div class="post-metadata">

**Author:** ![sheepman](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/d07c76/32.png) [@sheepman](https://www.ruby-forum.com/u/sheepman)\
**Post date:** [January 18, 2008, 3:16pm UTC](https://www.ruby-forum.com/t/default-script-encoding-and-k-option/126334/6 "2008-01-18T15:16:32Z")

</div>

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

At Fri, 18 Jan 2008 14:34:23 +0900,  
Yukihiro M. wrote in [ruby-dev:33168]:

> |e$B$H$$$&$+!"%i%$%V%i%j$O$\*$m$+!"%a%$%s%9%/%j%W%H$K$9$ie(B-Ke$B$,8z$+e(B  
> |e$B$J$/$J$C$F$$$k$N$G$9$,!"$3$l$O$o$6$H$G$9$+e(B?  
> |(r15099e$B$N$^$D$b$H$5$s$Ne(Bcommit)
> 
> e$B$o$6$H$8$c$J$$$G$9!#$I$&$d$C$FD\>$9$+$O$H$b$+$/!#e(B

e$B$3$s$J46$8$G$9$+!#e(B

# Index: parse.y

— parse.y (revision 15114)  
+++ parse.y (working copy)  
@@ -4765,5 +4765,4 @@ rb\_parser\_compile\_string(volatile VALUE  
lex\_gets\_ptr = 0;  
lex\_input = s;

- parser-\>enc = rb\_enc\_get(s);  
lex\_pbeg = lex\_p = lex\_pend = 0;  
compile\_for\_eval = rb\_parse\_in\_eval();  
@@ -5958,4 +5957,5 @@ parser\_prepare(struct parser\_params \*par  
}  
pushback©;

- parser-\>enc = rb\_enc\_get(lex\_lastline);  
}

@@ -9690,7 +9690,4 @@ ripper\_initialize(int argc, VALUE \*argv,  
}  
parser\_initialize(parser);

- if (parser-\>parser\_lex\_gets == lex\_get\_str) {

- parser-\>enc = rb\_enc\_get(src);

- }

- rb\_encoding \*enc;

- rb\_enc\_associate\_index(f, opt-\>enc\_index);

- enc = rb\_enc\_from\_index(opt-\>enc\_index);  
}  
else if (f == rb\_stdin) {

- rb\_enc\_associate(f, rb\_locale\_encoding());

- enc = rb\_locale\_encoding();
- }
- else {
- enc = 0;
- }
- if (enc) {
- rb\_funcall(f, rb\_intern(“set\_encoding”), 1,  
rb\_enc\_from\_encoding(enc));  
}  
tree = (NODE \*)rb\_parser\_compile\_file(parser, fname, f,  
line\_start);

---

<div class="post-metadata">

**Author:** ![sheepman](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/d07c76/32.png) [@sheepman](https://www.ruby-forum.com/u/sheepman)\
**Post date:** [January 18, 2008, 3:59pm UTC](https://www.ruby-forum.com/t/default-script-encoding-and-k-option/126334/7 "2008-01-18T15:59:30Z")

</div>

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

In message “Re: [ruby-dev:33172] Re: default script encoding and -K  
option”  
on Fri, 18 Jan 2008 23:01:05 +0900, Nobuyoshi N.  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) writes:

|Yukihiro M. wrote in [ruby-dev:33168]:  
|\> |e$B$H$$$&$+!“%i%$%V%i%j$O$\*$m$+!”%a%$%s%9%/%j%W%H$K$9$ie(B-Ke$B$,8z$+e(B  
|\> |e$B$J$/$J$C$F$$$k$N$G$9$,!"$3$l$O$o$6$H$G$9$+e(B?  
|\> |(r15099e$B$N$^$D$b$H$5$s$Ne(Bcommit)  
|\>  
|\> e$B$o$6$H$8$c$J$$$G$9!#$I$&$d$C$FD\>$9$+$O$H$b$+$/!#e(B  
|  
|e$B$3$s$J46$8$G$9$+!#e(B

e$B$(!\<$H!“MW$9$k$KIaCJe(Brb\_enc\_associate()e$B$NBP\>]$K$J$i$J$$e(BIOe$B$K$`e(B  
e$B$j$d$je(B(e$B$7$+$bGK2uE\*$Ke(B)encodinge$B$r@\_Dj$9$k$N$,7y$@$C$?$H$$$&$Ne(B  
e$B$,JQ99$N\<g$JM}M3$G$9!#$G!”$3$N%Q%C%A$Oe(Bset\_encodinge$B$r8F$s$G$$e(B  
e$B$k$N$G!"GK2uE\*$O$H$b$+$/$A$g$C$H$h$/$J$C$F$^$9!#$G$b!"e(B  
IO#set\_encodinge$B$G@\_Dj$7$?$N$C$Fe(Brb\_enc\_get()e$B$G\<h$j=P$;$J$$$he(B  
e$B$&$J5$$,$9$k$s$G$9$,!#5$$N$;$$!)e(B

---

<div class="post-metadata">

**Author:** ![sheepman](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/d07c76/32.png) [@sheepman](https://www.ruby-forum.com/u/sheepman)\
**Post date:** [January 18, 2008, 4:44pm UTC](https://www.ruby-forum.com/t/default-script-encoding-and-k-option/126334/8 "2008-01-18T16:44:42Z")

</div>

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

At Fri, 18 Jan 2008 23:59:03 +0900,  
Yukihiro M. wrote in [ruby-dev:33174]:

> e$B$(!\<$H!“MW$9$k$KIaCJe(Brb\_enc\_associate()e$B$NBP\>]$K$J$i$J$$e(BIOe$B$K$`e(B  
> e$B$j$d$je(B(e$B$7$+$bGK2uE\*$Ke(B)encodinge$B$r@\_Dj$9$k$N$,7y$@$C$?$H$$$&$Ne(B  
> e$B$,JQ99$N\<g$JM}M3$G$9!#$G!”$3$N%Q%C%A$Oe(Bset\_encodinge$B$r8F$s$G$$e(B  
> e$B$k$N$G!"GK2uE\*$O$H$b$+$/$A$g$C$H$h$/$J$C$F$^$9!#$G$b!"e(B  
> IO#set\_encodinge$B$G@\_Dj$7$?$N$C$Fe(Brb\_enc\_get()e$B$G\<h$j=P$;$J$$$he(B  
> e$B$&$J5$$,$9$k$s$G$9$,!#5$$N$;$$!)e(B

e$B:#EY$Oe(Blex\_inpute$B$8$c$J$/$Fe(Blex\_lastlinee$B$+$i\<h$C$F$^$9!#e(B

DATAe$B$N$3$H$r9M$($k$HGK2uE\*$G$J$$$H$$$1$J$$$s$8$c$J$$$+$H;W$$$^$9e(B  
e$B$,!"e(BDATAe$B$N%(%s%3!\<%G%#%s%0$O%9%/%j%W%H%(%s%3!\<%G%#%s%0$H$OJLJ\*$Ge(B  
e$B$9$+e(B?

---

<div class="post-metadata">

**Author:** ![sheepman](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/s/d07c76/32.png) [@sheepman](https://www.ruby-forum.com/u/sheepman)\
**Post date:** [January 18, 2008, 5:18pm UTC](https://www.ruby-forum.com/t/default-script-encoding-and-k-option/126334/9 "2008-01-18T17:18:51Z")

</div>

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

In message “Re: [ruby-dev:33175] Re: default script encoding and -K  
option”  
on Sat, 19 Jan 2008 00:44:00 +0900, Nobuyoshi N.  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) writes:

|At Fri, 18 Jan 2008 23:59:03 +0900,  
|Yukihiro M. wrote in [ruby-dev:33174]:  
|\> e$B$(!\<$H!“MW$9$k$KIaCJe(Brb\_enc\_associate()e$B$NBP\>]$K$J$i$J$$e(BIOe$B$K$`e(B  
|\> e$B$j$d$je(B(e$B$7$+$bGK2uE\*$Ke(B)encodinge$B$r@\_Dj$9$k$N$,7y$@$C$?$H$$$&$Ne(B  
|\> e$B$,JQ99$N\<g$JM}M3$G$9!#$G!”$3$N%Q%C%A$Oe(Bset\_encodinge$B$r8F$s$G$$e(B  
|\> e$B$k$N$G!"GK2uE\*$O$H$b$+$/$A$g$C$H$h$/$J$C$F$^$9!#$G$b!"e(B  
|\> IO#set\_encodinge$B$G@\_Dj$7$?$N$C$Fe(Brb\_enc\_get()e$B$G\<h$j=P$;$J$$$he(B  
|\> e$B$&$J5$$,$9$k$s$G$9$,!#5$$N$;$$!)e(B  
|  
|e$B:#EY$Oe(Blex\_inpute$B$8$c$J$/$Fe(Blex\_lastlinee$B$+$i\<h$C$F$^$9!#e(B

e$B$“!”$J$k$[$I!#e(B

|DATAe$B$N$3$H$r9M$($k$HGK2uE\*$G$J$$$H$$$1$J$$$s$8$c$J$$$+$H;W$$$^$9e(B  
|e$B$,!"e(BDATAe$B$N%(%s%3!\<%G%#%s%0$O%9%/%j%W%H%(%s%3!\<%G%#%s%0$H$OJLJ\*$Ge(B  
|e$B$9$+e(B?

e$B$$$(!“F1$8$G$”$k$Y$-$G$7$g$&!#%3%\_%C%H$7$F$/$@$5$$!#e(B
