# \[Bug #3180\] getc with text mode breaks incomplete character immediately before EOF

**URL:** <https://www.ruby-forum.com/t/bug-3180-getc-with-text-mode-breaks-incomplete-character-immediately-before-eof/187247>\
**Category:** Development\
**Created:** [April 20, 2010, 3:09pm UTC](https://www.ruby-forum.com/t/bug-3180-getc-with-text-mode-breaks-incomplete-character-immediately-before-eof/187247 "2010-04-20T15:09:28Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Yusuke\_E](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/y/f08c70/32.png) [@Yusuke\_E](https://www.ruby-forum.com/u/Yusuke_E)\
**Post date:** [April 20, 2010, 3:09pm UTC](https://www.ruby-forum.com/t/bug-3180-getc-with-text-mode-breaks-incomplete-character-immediately-before-eof/187247/1 "2010-04-20T15:09:28Z")

</div>

Bug #3180: getc with text mode breaks incomplete character immediately  
before EOF  
[http://redmine.ruby-lang.org/issues/show/3180](http://redmine.ruby-lang.org/issues/show/3180)

e$B5/I\<\<Te(B: Yusuke E.  
e$B%9%F!\<%?%9e(B: Open, e$BM%@hEYe(B: Normal  
e$BC4Ev\<Te(B: Yui NARUSE, e$B%+%F%4%je(B: M17N, Target version: 1.9.2  
ruby -v: ruby 1.9.2dev (2010-04-20 trunk 27405) [i686-linux]

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

# coding: UTF-8

# “e$B$&e(B” e$B$NESCf$G@Z$l$?CfESH\>C\<$J%U%!%$%k$r:n$ke(B

s = “e$B$”$$$&$($\*e(B".force\_encoding(“ASCII-8BIT”)  
open(“foo.txt”, “wb”) {|f| f.write(s[0, 8]) }

# IO#read e$B$G0l5$$KFI$a$P4|BTDL$je(B

open(“foo.txt”, “rt”) {|f| p f.read } #=\> “e$B$”$$e(B\xE3\x81"

# UTF-8 e$B$rL@\<($9$k$He(B UTF-8 e$B$K$J$k$,!":G8e$NJ8;z$,2=$1$ke(B

open(“foo.txt”, “rt:UTF-8”) {|f| p f.chars.to\_a }  
#=\> ["e$B$“e(B”, “e$B$$e(B”, “\u0000\u0000”]

LANG e$B$Oe(B ja\_JP.UTF-8 e$B$G$9!#e(B

incomplete e$B$JJ8;z$,e(B “\0\0” e$B$K2=$1$k$N$O0U?^E\*$G$7$g$&$+!#e(B  
e$B4|BT$H$7$F$O!"e(B["e$B$“e(B”, “e$B$$e(B”, “\xE3”, “\x81”]  
e$B$G$9!#e(B

–  
Yusuke E. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)

---

<div class="post-metadata">

**Author:** ![Yusuke\_E](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/y/f08c70/32.png) [@Yusuke\_E](https://www.ruby-forum.com/u/Yusuke_E)\
**Post date:** [April 21, 2010, 8:47am UTC](https://www.ruby-forum.com/t/bug-3180-getc-with-text-mode-breaks-incomplete-character-immediately-before-eof/187247/2 "2010-04-21T08:47:23Z")

</div>

e$B%A%1%C%He(B #3180 e$B$,99?7$5$l$^$7$?!#e(B (by Yui NARUSE)

e$B%9%F!\<%?%9e(B Opene$B$+$ie(BClosede$B$KJQ99e(B  
e$B?JD=e(B % 0e$B$+$ie(B100e$B$KJQ99e(B

This issue was solved with changeset r27432.  
Yusuke, thank you for reporting this issue.  
Your contribution to Ruby is greatly appreciated.  
May Ruby be with you.

* * *

[http://redmine.ruby-lang.org/issues/show/3180](http://redmine.ruby-lang.org/issues/show/3180)
