@JRubyMethod public IRubyObject set_encoding(ThreadContext context, IRubyObject ext_enc) { Encoding enc; if (ext_enc.isNil()) { enc = EncodingUtils.defaultExternalEncoding(context.runtime); } else { enc = EncodingUtils.rbToEncoding(context, ext_enc); } if (ptr.string.getEncoding() != enc) { ptr.string.modify(); ptr.string.setEncoding(enc); } return this; }