# \[Bug:trunk\] String#dump with non-ascii-compatible string provides invalid code

**URL:** <https://www.ruby-forum.com/t/bug-trunk-string-dump-with-non-ascii-compatible-string-provides-invalid-code/165039>\
**Category:** Development\
**Created:** [April 8, 2009, 2:58pm UTC](https://www.ruby-forum.com/t/bug-trunk-string-dump-with-non-ascii-compatible-string-provides-invalid-code/165039 "2009-04-08T14:58:49Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Yusuke\_ENDOH](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/y/c89c15/32.png) [@Yusuke\_ENDOH](https://www.ruby-forum.com/u/Yusuke_ENDOH)\
**Post date:** [April 8, 2009, 2:58pm UTC](https://www.ruby-forum.com/t/bug-trunk-string-dump-with-non-ascii-compatible-string-provides-invalid-code/165039/1 "2009-04-08T14:58:49Z")

</div>

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

e$B%"%9%-!\<Hs8\_49$JJ8;zNs$re(B String#dump e$B$9$k$He(B eval  
e$B$G$-$J$$J8;zNs$,e(B  
e$BF@$i$l$^$7$?!#e(B

$ ./ruby -e ‘p “\u3042”.encode(“UTF-16LE”).dump’  
““B0”.force\_encoding(“UTF-16LE”\x00”

# Index: string.c

— string.c (revision 23159)  
+++ string.c (working copy)  
@@ -4291,7 +4291,7 @@

```
 result = rb_str_new5(str, 0, len);
 p = RSTRING_PTR(str); pend = p + RSTRING_LEN(str);

```

- q = RSTRING\_PTR(result); qend = q + len;

- q = RSTRING\_PTR(result); qend = q + len + 1;

- 
- 

```
 "\u3042".encode("UTF-16LE"),

```

- 

```
 "\u3042".encode("UTF-16BE"),

```

].each do |str|  
assert\_equal(str, eval(str.dump), “[ruby-dev:33142]”)  
end

---

<div class="post-metadata">

**Author:** ![Yusuke\_ENDOH](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/y/c89c15/32.png) [@Yusuke\_ENDOH](https://www.ruby-forum.com/u/Yusuke_ENDOH)\
**Post date:** [April 8, 2009, 3:07pm UTC](https://www.ruby-forum.com/t/bug-trunk-string-dump-with-non-ascii-compatible-string-provides-invalid-code/165039/2 "2009-04-08T15:07:37Z")

</div>

e$B%A%1%C%He(B #1365 e$B$,99?7$5$l$^$7$?!#e(B (by Yusuke E.)

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

## Applied in changeset r23160.

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