# String::gsub$B$K$\*$1$k(Binvalid byte sequence$B$N8!=P$K$D$$$F(B

**URL:** <https://www.ruby-forum.com/t/string-gsub-b-k-1-k-binvalid-byte-sequence-b-n8-p-k-d-f-b/179247>\
**Category:** Development\
**Created:** [November 20, 2009, 12:59pm UTC](https://www.ruby-forum.com/t/string-gsub-b-k-1-k-binvalid-byte-sequence-b-n8-p-k-d-f-b/179247 "2009-11-20T12:59:39Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![TAKEGAWA\_Hiroshi](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/f08c70/32.png) [@TAKEGAWA\_Hiroshi](https://www.ruby-forum.com/u/TAKEGAWA_Hiroshi)\
**Post date:** [November 20, 2009, 12:59pm UTC](https://www.ruby-forum.com/t/string-gsub-b-k-1-k-binvalid-byte-sequence-b-n8-p-k-d-f-b/179247/1 "2009-11-20T12:59:39Z")

</div>

ç«¹å·ã¨ç”³ã—ã¾ã™ã€‚

ruby 1.9ã§ã€ã‚ã‚‹UTF-8ã®Stringã«å¯¾ã—ã¦gsubã‚’å‘¼ã³å‡ºã—ãŸã¨ã“ã‚ã€ä»¥ä¸‹ã®ã‚¨  
ãƒ©ãƒ¼ã«ãªã‚Šã¾ã™ã€‚

$ cat sample/testdata.txt | ruby sample/gsub.rb  
sample/gsub.rb:5:in `gsub': invalid byte sequence in UTF-8 (ArgumentError) from sample/gsub.rb:5:in`’  
$ ruby --version  
ruby 1.9.1p243 (2009-07-16 revision 24175) [x86\_64-linux]

ãƒ†ã‚¹ãƒˆãƒ‡ãƒ¼ã‚¿ã®æœ€å¾Œã®ä¸€æ–‡å­—ã¯ ‘a’ ãªã®ã§ã™ãŒã€ã“ã®æœ€å¾Œã®æ–‡å­—ã‚’å‰Šã‚‹ã ã‘ã§  
ã‚¨ãƒ©ãƒ¼ã«ãªã‚‰ãªããªã‚Šã¾ã™ã€‚ã‚¹ã‚¯ãƒªãƒ—ãƒˆãªã‚‰ã³ã«ãƒ†ã‚¹ãƒˆãƒ‡ãƒ¼ã‚¿ã‚’æ·»ä»˜ã„ãŸã—ã¾ã™ã€‚

ä¸æ­£ãªæ–‡å­—ã‚’è¦‹ã¤ã‘ã‚‹ã“ã¨ãŒã§ããšã€ã¾ãŸã€  
ã¡ã‚‰ã£ã¨ ruby ã®ã‚½ãƒ¼ã‚¹ã‚³ãƒ¼ãƒ‰ã‚’è¦‹ãŸã®ã§ã™ãŒã€åŽŸå› ãŒã‚ã‹ã‚‰ãšã€  
å ±å‘Šã•ã›ã¦ã„ãŸã ãã¾ã—ãŸã€‚

ãªã«ã‹å›žé¿æ–¹æ³•ãŒã‚ã‚Œã°ã€ã”æ•™ç¤ºã„ãŸã ã‘ãªã„ã§ã—ã‚‡ã†ã‹ ?

ã‚ˆã‚ã—ããŠé¡˜ã„ã„ãŸã—ã¾ã™ã€‚

---

<div class="post-metadata">

**Author:** ![TAKEGAWA\_Hiroshi](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/f08c70/32.png) [@TAKEGAWA\_Hiroshi](https://www.ruby-forum.com/u/TAKEGAWA_Hiroshi)\
**Post date:** [November 21, 2009, 1:55am UTC](https://www.ruby-forum.com/t/string-gsub-b-k-1-k-binvalid-byte-sequence-b-n8-p-k-d-f-b/179247/2 "2009-11-21T01:55:09Z")

</div>

e$B@\>;3OB9-$G$9!#e(B

At Fri, 20 Nov 2009 20:44:01 +0900,  
TAKEGAWA Hiroshi wrote:

> e$B$J$K$+2sHrJ}K!$,$"$l$P!"$465\<($$$?$@$1$J$$$G$7$g$&$+e(B ?

e$B2?$,0c$&$N$+$h$/$o$+$j$^$;$s$,!"%Q%$%W$@$H:F8=$7$F%j%@%$%l%/%H$@$He(B  
e$B:F8=$7$J$$$h$&$G$9!#e(B

% ruby-1.9.1 -v sample/gsub.rb \< sample/testdata.txt  
ruby 1.9.1p339 (2009-11-17 revision 25816) [x86\_64-linux]  
% cat sample/testdata.txt | ruby-1.9.1 -v sample/gsub.rb  
ruby 1.9.1p339 (2009-11-17 revision 25816) [x86\_64-linux]  
sample/gsub.rb:5:in `gsub': invalid byte sequence in UTF-8 (ArgumentError) from sample/gsub.rb:5:in`’  
%

---

<div class="post-metadata">

**Author:** ![TAKEGAWA\_Hiroshi](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/f08c70/32.png) [@TAKEGAWA\_Hiroshi](https://www.ruby-forum.com/u/TAKEGAWA_Hiroshi)\
**Post date:** [November 21, 2009, 5:18am UTC](https://www.ruby-forum.com/t/string-gsub-b-k-1-k-binvalid-byte-sequence-b-n8-p-k-d-f-b/179247/3 "2009-11-21T05:18:46Z")

</div>

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

Kazuhiro NISHIYAMA wrote:

> At Fri, 20 Nov 2009 20:44:01 +0900,  
> TAKEGAWA Hiroshi wrote:
> 
> > e$B$J$K$+2sHrJ}K!$,$"$l$P!"$465\<($$$?$@$1$J$$$G$7$g$&$+e(B ?
> 
> e$B2?$,0c$&$N$+$h$/$o$+$j$^$;$s$,!"%Q%$%W$@$H:F8=$7$F%j%@%$%l%/%H$@$He(B  
> e$B:F8=$7$J$$$h$&$G$9!#e(B

testdata.txt e$B$NFbMF$,e(B “a”\*1023+"e$B$“e(B”+"a"_1022  
e$B$G$b:F8=$7$^$7$?!#e(B  
e$B?dB,$9$k$K!"%P%C%U%!%5%$%:e(B 1024 e$B%P%$%H$J$H$3$m!"e(B  
e$B:G=i$N%P%C%U%!$NKvHx$KB?%P%$%HJ8;z$N@hF,$,Mh$?\>l9g$K$_$+$7$/$J$k$N$G$7$g$&!#e(B

---

<div class="post-metadata">

**Author:** ![TAKEGAWA\_Hiroshi](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/f08c70/32.png) [@TAKEGAWA\_Hiroshi](https://www.ruby-forum.com/u/TAKEGAWA_Hiroshi)\
**Post date:** [November 21, 2009, 5:24am UTC](https://www.ruby-forum.com/t/string-gsub-b-k-1-k-binvalid-byte-sequence-b-n8-p-k-d-f-b/179247/4 "2009-11-21T05:24:03Z")

</div>

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

TAKEGAWA Hiroshi wrote:

> e$B%(%i!\<$K$J$i$J$/$J$j$^$9!#%9%/%j%W%H$J$i$S$K%F%9%H%G!\<%?$rE:IU$$$?$7$^$9!#e(B
> 
> e$BIT@5$JJ8;z$r8+$D$1$k$3$H$,$G$-$:!"$^$?!"e(B  
> e$B$A$i$C$He(B ruby e$B$N%=!\<%9%3!\<%I$r8+$?$N$G$9$,!"860x$,$o$+$i$:!"e(B  
> e$BJs9p$5$;$F$$$?$@$-$^$7$?!#e(B
> 
> e$B$J$K$+2sHrJ}K!$,$"$l$P!"$465\<($$$?$@$1$J$$$G$7$g$&$+e(B ?

e$B$^$:!“7kO@$+$i?=$7$^$9$H!”$3$l$Oe(B Ruby  
e$BB&$N%P%0$J$N$G!"=$@5$7$^$9!#e(B

e$B\<!$KEvLL$N2sHr:v$G$9$,!"0J2\<$N$h$&$K6uJ8;z$rDI2C$9$k%3!\<%I$r64$a$P$h$$$G$9!#e(B  
(String#concat e$B$de(B String#\<\< e$B$G$O2sHr$G$-$J$$e(B)  
e$B$4ITJX$\*$+$1$7$^$9$,!"EvLL$O$3$l$G$7$N$$$G$/$@$5$$!#e(B

#! /usr/local/bin/ruby

# -_- coding: utf-8 -_-

$stdin.set\_encoding(‘UTF-8’)  
str = $stdin.read  
p str.valid\_encoding? #=\> false  
str += “”  
p str.valid\_encoding? #=\> true

---

<div class="post-metadata">

**Author:** ![TAKEGAWA\_Hiroshi](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/f08c70/32.png) [@TAKEGAWA\_Hiroshi](https://www.ruby-forum.com/u/TAKEGAWA_Hiroshi)\
**Post date:** [November 24, 2009, 2:39am UTC](https://www.ruby-forum.com/t/string-gsub-b-k-1-k-binvalid-byte-sequence-b-n8-p-k-d-f-b/179247/5 "2009-11-24T02:39:16Z")

</div>

e$B@\>;3MM!"@.@%MMe(B

TAKEGAWA Hiroshi e$B$5$s$O=q$-$^$7$?e(B:

> e$BC]@n$H?=$7$^$9!#e(B
> 
> ruby 1.9e$B$G!"$"$ke(BUTF-8e$B$Ne(BStringe$B$KBP$7$Fe(Bgsube$B$r8F$S=P$7$?$H$3$m!"0J2\<$N%(e(B  
> e$B%i!\<$K$J$j$^$9!#e(B

e$BK\7o!“D4::$J$i$S$K2sHrJ}K!$r$465\<($$$?$@$-$I$&$b$”$j$,$H$&$4$6$$$^$7$?!#e(B  
e$B:#2s!"?WB.$K$\*JV;v$r$$$?$@$/$3$H$,$G$-!":n6H$,$[$;\_$^$i$:BgJQ=u$+$j$^$7$?!#e(B

e$B$^$?$J$K$+$"$j$^$7$?$iJs9p$5$;$F$$$?$@$-$?$$$H;W$$$^$9!#e(B  
e$B$J$\*!"K\7o!"K\Mh$Oe(B ruby-list  
e$B$KEj9F$9$Y$-FbMF$N$@$C$?$3$H$K8e$G5$$,IU$-e(B  
e$B$^$7$?!#0J8e5$$r$D$1$?$$$H;W$$$^$9!#e(B

e$B0J\>e$G$9!#e(B

---

<div class="post-metadata">

**Author:** ![TAKEGAWA\_Hiroshi](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/f08c70/32.png) [@TAKEGAWA\_Hiroshi](https://www.ruby-forum.com/u/TAKEGAWA_Hiroshi)\
**Post date:** [November 26, 2009, 4:17am UTC](https://www.ruby-forum.com/t/string-gsub-b-k-1-k-binvalid-byte-sequence-b-n8-p-k-d-f-b/179247/6 "2009-11-26T04:17:08Z")

</div>

e$B@.@%MMe(B

e$B@bL@$7$F$$$?$@$-$"$j$,$H$&$4$6$$$^$7$?!#e(B

e$B$?$@!"$J$+$J$+e(B Ruby e$B$N%P%0$G$"$k$H3N?.$r;}$F$J$$$b$N$Ge(B …  
e$B:#2s$bC1$K\<+J,$N$D$^$i$J$$8+Mn$H$7$G$J$$$+$H$$$&IT0B$rJz$($D$D!"Ej9F$5$;e(B  
e$B$F$$$?$@$-$^$7$?!#e(B

e$B0J\>e$G$9!#e(B

NARUSE, Yui e$B$5$s$O=q$-$^$7$?e(B:

---

<div class="post-metadata">

**Author:** ![TAKEGAWA\_Hiroshi](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/f08c70/32.png) [@TAKEGAWA\_Hiroshi](https://www.ruby-forum.com/u/TAKEGAWA_Hiroshi)\
**Post date:** [November 24, 2009, 11:12am UTC](https://www.ruby-forum.com/t/string-gsub-b-k-1-k-binvalid-byte-sequence-b-n8-p-k-d-f-b/179247/7 "2009-11-24T11:12:32Z")

</div>

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

TAKEGAWA Hiroshi wrote:

> TAKEGAWA Hiroshi e$B$5$s$O=q$-$^$7$?e(B:
> 
> > ruby 1.9e$B$G!“$”$ke(BUTF-8e$B$Ne(BStringe$B$KBP$7$Fe(Bgsube$B$r8F$S=P$7$?$H$3$m!"0J2\<$N%(e(B  
> > e$B%i!\<$K$J$j$^$9!#e(B
> 
> e$BK\7o!“D4::$J$i$S$K2sHrJ}K!$r$465\<($$$?$@$-$I$&$b$”$j$,$H$&$4$6$$$^$7$?!#e(B  
> e$B:#2s!“?WB.$K$\*JV;v$r$$$?$@$/$3$H$,$G$-!”:n6H$,$[$;\_$^$i$:BgJQ=u$+$j$^$7$?!#e(B

e$B$=$N8e!"e(Br25880 e$B$G=$@5$7$^$7$?!#e(B  
[http://redmine.ruby-lang.org/repositories/revision/ruby-19?rev=25880](http://redmine.ruby-lang.org/repositories/revision/ruby-19?rev=25880)

> e$B$^$?$J$K$+$"$j$^$7$?$iJs9p$5$;$F$$$?$@$-$?$$$H;W$$$^$9!#e(B  
> e$B$J$\*!"K\7o!"K\Mh$Oe(B ruby-list e$B$KEj9F$9$Y$-FbMF$N$@$C$?$3$H$K8e$G5$$,IU$-e(B  
> e$B$^$7$?!#0J8e5$$r$D$1$?$$$H;W$$$^$9!#e(B

e$B7kO@$+$i?=$7$^$9$H!"$3$l$Oe(B ruby-dev e$B$G$h$+$C$?$H;W$$$^$9!#e(B  
e$B4JC1$K;H$$J,$1$r=R$Y$k$H!"e(B

- ruby-list e$B$Oe(B Ruby e$B$r!V;H$&!W?Me(B
- ruby-dev e$B$Oe(B Ruby e$B$r!V:n$k!W?Me(B  
e$B$N$?$a$N%a!\<%j%s%0%j%9%H$H$$$&;v$K$J$j$^$9!#e(B

e$B$D$^$j!"K\7o$N$h$&$Je(B Ruby e$B\<+BN$N%P%0$rJs9p$9$k:]$O!"e(B  
e$B!Ve(BRuby e$B$r!X:n$k!Y?M!W$,8+$k$Y$-$b$N$J$N$Ge(B ruby-dev  
e$B$,E,@Z$G$9!#e(B
