# New replica encodings and encoding aliases

**URL:** <https://www.ruby-forum.com/t/new-replica-encodings-and-encoding-aliases/125901>\
**Category:** Development\
**Created:** [January 13, 2008, 3:48pm UTC](https://www.ruby-forum.com/t/new-replica-encodings-and-encoding-aliases/125901 "2008-01-13T15:48:23Z")\
**Posts on this page:** 5\
**Page:** 1

<div class="post-metadata">

**Author:** ![NARUSES\_Yui](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/n/258eb7/32.png) [@NARUSES\_Yui](https://www.ruby-forum.com/u/NARUSES_Yui)\
**Post date:** [January 13, 2008, 3:48pm UTC](https://www.ruby-forum.com/t/new-replica-encodings-and-encoding-aliases/125901/1 "2008-01-13T15:48:23Z")

</div>

e$B@.@%$G$9!#e(B

e$B\<j85$N4D6-$rD/$a$D$D!"?’!9$He(B replica e$B$de(B alias  
e$B$r@_Dj$7$F$_$^$7$?!#8=:\_;Xe(B  
e$BDj2DG=$J%(%s%3!\<%G%#%s%0$O0J2\<$N$H$\*$j$G$9!#e(BISO 8859  
e$B%7%j!\<%:$O$H$j$"$(e(B  
e$B$:$=$l$C$]$$$N$Ne(B replica  
e$B$K$7$F$$$k$N$G4V0c$C$F$$$?$i65$($F$/$@$5$$!#e(B  
e$B!Je(BWindows-1251 e$B$Oe(B e$B$J$s$+4V0c$($?5$$,$9$k!&!&!&!Ke(B  
“ASCII” is original encoding  
“EUC-JP” is original encoding  
“ISO-8859-1” is original encoding  
“ISO-8859-10” is original encoding  
“ISO-8859-11” is original encoding  
“ISO-8859-13” is original encoding  
“ISO-8859-14” is original encoding  
“ISO-8859-15” is original encoding  
“ISO-8859-16” is original encoding  
“ISO-8859-2” is original encoding  
“ISO-8859-3” is original encoding  
“ISO-8859-4” is original encoding  
“ISO-8859-5” is original encoding  
“ISO-8859-6” is original encoding  
“ISO-8859-7” is original encoding  
“ISO-8859-8” is original encoding  
“ISO-8859-9” is original encoding  
“Shift\_JIS” is original encoding  
“US-ASCII” is original encoding  
“UTF-8” is original encoding  
“UTF-16BE” is original encoding  
“UTF-16LE” is original encoding  
“UTF-32BE” is original encoding  
“UTF-32LE” is original encoding  
"“Windows-1255” is replica of “ISO-8859-8”  
“Windows-1256” is replica of “ISO-8859-6”  
“Windows-1257” is replica of “ISO-8859-4”  
“Windows-874” is replica of “ISO-8859-11”  
“CP51932” is replica of “EUC-JP”  
“eucJP-ms” is replica of “EUC-JP”  
“Windows-31J” is replica of “Shift\_JIS”  
“Windows-1251” is replica of “ISO-8859-5”  
“Windowws-1250” is replica of “ISO-8859-2”  
“Windows-1252” is replica of “ISO-8859-1”  
“Windows-1253” is replica of “ISO-8859-7”  
“Windows-1254” is replica of “ISO-8859-9”  
“CP932” is alias of “Windows-31J”  
“ISO8859-6” is alias of “ISO-8859-6”  
“ISO8859-14” is alias of “ISO-8859-14”  
“CP1252” is alias of “Windows-1252”  
“SJIS” is alias of “Shift\_JIS”  
“CP1253” is alias of “Windows-1253”  
“ISO8859-7” is alias of “ISO-8859-7”  
“ISO8859-15” is alias of “ISO-8859-15”  
“BINARY” is alias of “ASCII-8BIT”  
“646” is alias of “US-ASCII”  
“CP1254” is alias of “Windows-1254”  
“ISO8859-8” is alias of “ISO-8859-8”  
“ISO8859-16” is alias of “ISO-8859-16”  
“ISO8859-9” is alias of “ISO-8859-9”  
“CP1255” is alias of “Windows-1255”  
“eucJP” is alias of “EUC-JP”  
“ANSI\_X3.4-1986” is alias of “US-ASCII”  
“CP1256” is alias of “Windows-1256”  
“CP1257” is alias of “Windows-1257”  
“ASCII” is alias of “US-ASCII”  
“ISO8859-1” is alias of “ISO-8859-1”  
“csWindows31J” is alias of “Windows-31J”  
“ISO8859-2” is alias of “ISO-8859-2”  
“ISO8859-10” is alias of “ISO-8859-10”  
“ISO8859-3” is alias of “ISO-8859-3”  
“CP874” is alias of “ISO-8859-11”  
“ISO8859-11” is alias of “ISO-8859-11”  
“euc-jp-ms” is alias of “EUC-JP”  
“ISO8859-4” is alias of “ISO-8859-4”  
“CP1250” is alias of “Windows-1250”  
“CP1251” is alias of “Windows-1251”  
“ISO8859-5” is alias of “ISO-8859-5”  
“ISO8859-13” is alias of “ISO-8859-13”

e$BL$EPO?$J$b$N$N$&$A!"54\<V$,%5%]!\<%H$7$F$$$k$N$O!"0J2\<$NDL$j!#e(B  
bg\_BG.CP1251 Bulgarian Cyrillic character set (CP1251), CODESET=CP1251  
ko\_KR.eucKR 1 0x0000 2 0x8080 2 0x0080 3 0x8000 0x8080 CODESET=eucKR  
ru\_RU.KOI8-R Russian CODESET=KOI8-R  
zh\_CN.GB18030 CODESET=GB18030  
zh\_CN.eucCN 1 0x0000 2 0x8080 2 0x0080 3 0x8000 0x8080 CODESET=eucCN  
zh\_TW.BIG5 CODESET=BIG5  
zh\_TW.eucTW CODESET=eucTW

KOI8-U e$B$Oe(B KOI8 e$B$Ne(B replica  
e$B$J$N$+JLJ\*$J$N$+$,$o$+$j$^$;$s$G$7$?!#$J$K$+1Fe(B  
e$B6A$"$k$N$+$J!#e(B  
uk\_UA.KOI8-U Ukrainian CODESET=KOI8-U character set

e$B$"$H0J2\<$N%(%s%3!\<%G%#%s%0$,$"$j$^$7$?$,!"$3$l$O%5%]!\<%H$9$kI,MW$"$k$N$Ge(B  
e$B$9$+$M!)$J$s$+$J$5$=$&!#e(B  
ru\_RU.CP866 Russian Alternative charset, CODESET=CP866  
kk\_KZ.PT154 PT154 character set,CODESET=PT154  
hy\_AM.ARMSCII-8 Armenian ARMSCII-8 character set, CODESET=ARMSCII-8  
ru\_RU.CP866 Russian Alternative charset, CODESET=CP866

e$B$H$3$m$G!"8=:\_e(B rb\_locale\_encoding e$B$Oe(B locale\_charmap e$B$,e(B  
nil e$B$@$He(B  
ASCII-8BIT e$B$rJV$7$^$9$,!"e(BPOSIX e$BE\*$K$$$($Pe(B nil = C  
e$B$J$o$1$G!"e(BUS-ASCII e$B$re(B  
e$BJV$9$N$O$I$&$G$7$g$&!#$^$?!"L$EPO?$NL\>A0$,Mh$?$H$-$Oe(B dummy  
e$B$rJV$7$^$;$s$+!#e(B

# Index: encoding.c

— encoding.c (revision 15025)  
+++ encoding.c (working copy)  
@@ -872,13 +872,14 @@ rb\_locale\_encoding(void)  
{  
VALUE charmap = rb\_locale\_charmap(rb\_cEncoding);  
int idx;

- char \*name;

- if (NIL\_P(charmap))
- 

```
   return rb_ascii8bit_encoding();

```

- if (NIL\_P(charmap)) name = “US-ASCII”;
- else name = StringValueCStr(charmap)

- idx = rb\_enc\_find\_index(StringValueCStr(charmap));

- idx = rb\_enc\_find\_index(name);  
if (idx \< 0)

- 

```
   return rb_ascii8bit_encoding();

```

- 

```
   idx = rb_define_dummy_encoding(name);

```

return rb\_enc\_from\_index(idx);  
}

---

<div class="post-metadata">

**Author:** ![NARUSES\_Yui](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/n/258eb7/32.png) [@NARUSES\_Yui](https://www.ruby-forum.com/u/NARUSES_Yui)\
**Post date:** [January 14, 2008, 8:03am UTC](https://www.ruby-forum.com/t/new-replica-encodings-and-encoding-aliases/125901/2 "2008-01-14T08:03:40Z")

</div>

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

In message “Re: [ruby-dev:33078] NEW REPLICA ENCODINGS AND ENCODING  
ALIASES”  
on Sun, 13 Jan 2008 23:45:43 +0900, “NARUSE, Yui”  
[removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) writes:

|e$B$H$3$m$G!"8=:\_e(B rb\_locale\_encoding e$B$Oe(B locale\_charmap e$B$,e(B nil e$B$@$He(B  
|ASCII-8BIT e$B$rJV$7$^$9$,!"e(BPOSIX e$BE\*$K$$$($Pe(B nil = C e$B$J$o$1$G!"e(BUS-ASCII e$B$re(B  
|e$BJV$9$N$O$I$&$G$7$g$&!#e(B

e$B$$$$$s$8$c$J$$$+$H;W$$$^$9!#e(B

|e$B$^$?!"L$EPO?$NL\>A0$,Mh$?$H$-$Oe(B dummy e$B$rJV$7$^$;$s$+!#e(B

encodinge$B$Oe(BGCe$B$NBP\>]$K$J$i$J$$$N$G!“$`$d$\_$K:n$C$A$c$&$N$K$ODqe(B  
e$B93$,$”$j$^$9!#e(B

---

<div class="post-metadata">

**Author:** ![NARUSES\_Yui](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/n/258eb7/32.png) [@NARUSES\_Yui](https://www.ruby-forum.com/u/NARUSES_Yui)\
**Post date:** [January 14, 2008, 10:10am UTC](https://www.ruby-forum.com/t/new-replica-encodings-and-encoding-aliases/125901/3 "2008-01-14T10:10:38Z")

</div>

e$B@.@%$G$9!#e(B

Yukihiro M. wrote:

> |e$B$H$3$m$G!"8=:\_e(B rb\_locale\_encoding e$B$Oe(B locale\_charmap e$B$,e(B nil e$B$@$He(B  
> |ASCII-8BIT e$B$rJV$7$^$9$,!"e(BPOSIX e$BE\*$K$$$($Pe(B nil = C e$B$J$o$1$G!"e(BUS-ASCII e$B$re(B  
> |e$BJV$9$N$O$I$&$G$7$g$&!#e(B
> 
> e$B$$$$$s$8$c$J$$$+$H;W$$$^$9!#e(B

r15039 e$B$G%3%\_%C%H$7$^$7$?!#e(B

> |e$B$^$?!"L$EPO?$NL\>A0$,Mh$?$H$-$Oe(B dummy e$B$rJV$7$^$;$s$+!#e(B
> 
> encodinge$B$Oe(BGCe$B$NBP\>]$K$J$i$J$$$N$G!"$`$d$\_$K:n$C$A$c$&$N$K$ODqe(B  
> e$B93$,$"$j$^$9!#e(B

e$B$3$3$G$D$/$i$l$ke(B dummy e$B$O9b!9e(B 1  
e$B$D$J$N$GBg$-$J1F6A$O$J$$5$$b$9$k$N$G$9e(B  
e$B$,!"$H$j$"$($:EPO?:Q$\_$NL\>A0$rA}$d$9J}K!$GBP1~$9$k$3$H$K$7$^$9!#e(B

---

<div class="post-metadata">

**Author:** ![NARUSES\_Yui](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/n/258eb7/32.png) [@NARUSES\_Yui](https://www.ruby-forum.com/u/NARUSES_Yui)\
**Post date:** [January 16, 2008, 9:27am UTC](https://www.ruby-forum.com/t/new-replica-encodings-and-encoding-aliases/125901/4 "2008-01-16T09:27:08Z")

</div>

e$B@.@%$5$s!"$3$s$K$A$O!#e(B

e$BJV;v$,CY$/$J$C$F$4$a$s$J$5$$!#e(B

At 23:45 08/01/13, NARUSE, Yui wrote:

> e$B@.@%$G$9!#e(B
> 
> e$B\<j85$N4D6-$rD/$a$D$D!“?'!9$He(B replica e$B$de(B alias e$B$r@_Dj$7$F$_$^$7$?!#8=:\_;Xe(B  
> e$BDj2DG=$J%(%s%3!\<%G%#%s%0$O0J2\<$N$H$\*$j$G$9!#e(BISO 8859 e$B%7%j!\<%:$O$H$j$”$(e(B  
> e$B$:$=$l$C$]$$$N$Ne(B replica e$B$K$7$F$$$k$N$G4V0c$C$F$$$?$i65$($F$/$@$5$$!#e(B  
> e$B!Je(BWindows-1251 e$B$Oe(B e$B$J$s$+4V0c$($?5$$,$9$k!&!&!&!Ke(B

windows-15xx e$B$OB?$/$N\>l9ge(B iso-8859-yy e$B$H;w$F$$$^$9$,!"e(B  
0x80 e$B$+$ie(B 0x9F e$B$^$G$O0c$$$^$9!#e(Biso  
e$B$NJ}$O$=$3$K%3%s%H%m!\<%ke(B  
e$B$,F~$C$F$$$k$+$I$&$+$G!“e(Bwindows e$B$N\>l9g$O\>/$J$/$H$b0lIt$Ke(B  
e$B!VIaDL!W$NJ8;z$,F~$C$F$$$^$9!#e(Bstring[i] e$B$J$I$N%a%\>%I$K$Oe(B  
e$B1F6A$,$J$$$,!”@55,I=8=$J$I$G0c$$$,$G$k$H;W$$$^$9!#e(B

e$B$H$3$m$G!"2\<5-$N%j%9%H$O$I$&$d$C$F=P$;$k$G$7$g$&$+!#e(B

e$B59$7$/$\*4j$$$7$^$9!#e(B Martin.

> “ISO-8859-3” is original encoding  
> “UTF-16LE” is original encoding  
> “Windowws-1250” is replica of “ISO-8859-2”  
> “ISO8859-15” is alias of “ISO-8859-15”  
> “CP1257” is alias of “Windows-1257”  
> “CP1250” is alias of “Windows-1250”  
> zh\_TW.BIG5 CODESET=BIG5  
> hy\_AM.ARMSCII-8 Armenian ARMSCII-8 character set, CODESET=ARMSCII-8  
> +++ encoding.c (working copy)
> 
> NARUSE, Yui [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
> DBDB A476 FDBD 9450 02CD 0EFC BCE3 C388 472E C1EA

#-#-# Martin J. Du"rst, Assoc. Professor, Aoyama Gakuin University  
#-#-# [http://www.sw.it.aoyama.ac.jp](http://www.sw.it.aoyama.ac.jp)[mailto:removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

---

<div class="post-metadata">

**Author:** ![NARUSES\_Yui](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/n/258eb7/32.png) [@NARUSES\_Yui](https://www.ruby-forum.com/u/NARUSES_Yui)\
**Post date:** [January 16, 2008, 1:48pm UTC](https://www.ruby-forum.com/t/new-replica-encodings-and-encoding-aliases/125901/5 "2008-01-16T13:48:48Z")

</div>

e$B@.@%$G$9!#e(B

Martin D. wrote:

> > e$B\<j85$N4D6-$rD/$a$D$D!"?’!9$He(B replica e$B$de(B alias e$B$r@_Dj$7$F$_$^$7$?!#8=:\_;Xe(B  
> > e$BDj2DG=$J%(%s%3!\<%G%#%s%0$O0J2\<$N$H$\*$j$G$9!#e(BISO 8859 e$B%7%j!\<%:$O$H$j$"$(e(B  
> > e$B$:$=$l$C$]$$$N$Ne(B replica e$B$K$7$F$$$k$N$G4V0c$C$F$$$?$i65$($F$/$@$5$$!#e(B  
> > e$B!Je(BWindows-1251 e$B$Oe(B e$B$J$s$+4V0c$($?5$$,$9$k!&!&!&!Ke(B
> 
> windows-15xx e$B$OB?$/$N\>l9ge(B iso-8859-yy e$B$H;w$F$$$^$9$,!"e(B  
> 0x80 e$B$+$ie(B 0x9F e$B$^$G$O0c$$$^$9!#e(Biso e$B$NJ}$O$=$3$K%3%s%H%m!\<%ke(B  
> e$B$,F~$C$F$$$k$+$I$&$+$G!“e(Bwindows e$B$N\>l9g$O\>/$J$/$H$b0lIt$Ke(B  
> e$B!VIaDL!W$NJ8;z$,F~$C$F$$$^$9!#e(Bstring[i] e$B$J$I$N%a%\>%I$K$Oe(B  
> e$B1F6A$,$J$$$,!”@55,I=8=$J$I$G0c$$$,$G$k$H;W$$$^$9!#e(B

e$B$"!\<!"$J$k$[$I!#e(B  
Windows-125x e$B$He(B ISO-88590-Y  
e$B$N0c$$$O4{CN$N%P%0$H$$$&$3$H$G!"$_$$$_$$D\>$7e(B  
e$B$F$\*$-$^$9!#e(B

> e$B$H$3$m$G!"2\<5-$N%j%9%H$O$I$&$d$C$F=P$;$k$G$7$g$&$+!#e(B

e$B0J2\<$N$h$&$J%9%/%j%W%H$G=PNO$7$F$$$^$9!#e(B  
(Encoding.name\_list|Encoding.list.map{|x| x.to\_s}).each do |name|  
enc = Encoding.find(name)  
if enc.dummy?  
puts ‘%s is a dummy encoding.’ % name  
elsif name != enc.to\_s  
puts ‘%s is an alias of %s.’ % [name, enc.to\_s]  
elsif enc.base\_encoding  
puts ‘%s is a replica of %s.’ % [name, enc.base\_encoding.to\_s]  
else  
puts ‘%s is a original encoding.’ % name  
end  
end
