Index: string.c =================================================================== --- string.c (revision 30751) +++ string.c (working copy) @@ -3728,6 +3728,7 @@ str_gsub(int argc, VALUE *argv, VALUE st slen = RSTRING_LEN(str); cp = sp; str_enc = STR_ENC_GET(str); + rb_enc_associate(dest, str_enc); do { n++;