public final Encoding toEncoding(Ruby runtime) { return runtime.getEncodingService().findEncoding(this); }
private Encoding getEncodingFromObjectCommon(IRubyObject arg, boolean error) { if (arg == null) return null; if (arg instanceof RubyEncoding) { return ((RubyEncoding) arg).getEncoding(); } else if (arg instanceof RubyFixnum && RubyNKF.NKFCharsetMap.containsKey((int)arg.convertToInteger().getLongValue())) { return getEncodingFromNKFId(arg); } else if ((arg = arg.checkStringType19()).isNil()) { return null; } else if (!((RubyString)arg).getEncoding().isAsciiCompatible()) { return null; } else { if (error) { return findEncoding((RubyString)arg); } else { return findEncodingNoError((RubyString)arg); } } }
private Encoding getEncodingFromObjectCommon(IRubyObject arg, boolean error) { if (arg == null) return null; if (arg instanceof RubyEncoding) { return ((RubyEncoding) arg).getEncoding(); } else if (arg instanceof RubyFixnum && RubyNKF.NKFCharsetMap.containsKey((int)arg.convertToInteger().getLongValue())) { return getEncodingFromNKFId(arg); } else if ((arg = arg.checkStringType19()).isNil()) { return null; } else if (!((RubyString)arg).getEncoding().isAsciiCompatible()) { return null; } else { if (error) { return findEncoding((RubyString)arg); } else { return findEncodingNoError((RubyString)arg); } } }
public final Encoding toEncoding(Ruby runtime) { return runtime.getEncodingService().findEncoding(this); }
public final Encoding toEncoding(Ruby runtime) { return runtime.getEncodingService().findEncoding(this); }
public final Encoding toEncoding(Ruby runtime) { return runtime.getEncodingService().findEncoding(this); }
ByteList convert_byte(ByteList str, String inputCharset, NKFCharset output) { String outputCharset = output.getCharset(); CharsetDecoder decoder; CharsetEncoder encoder; try { decoder = Charset.forName(inputCharset).newDecoder(); encoder = Charset.forName(outputCharset).newEncoder(); } catch (UnsupportedCharsetException e) { throw context.runtime.newArgumentError("invalid charset"); } ByteBuffer buf = ByteBuffer.wrap(str.getUnsafeBytes(), str.begin(), str.length()); try { CharBuffer cbuf = decoder.decode(buf); encoder.onUnmappableCharacter(java.nio.charset.CodingErrorAction.IGNORE); buf = encoder.encode(cbuf); } catch (CharacterCodingException e) { throw context.runtime.newArgumentError("invalid encoding"); } byte[] arr = buf.array(); ByteList r = new ByteList(arr, 0, buf.limit()); if (outputCharset.equalsIgnoreCase("Windows-31J")) outputCharset = "Shift_JIS"; if (outputCharset.equalsIgnoreCase("UTF-16")) outputCharset = "UTF-16BE"; Ruby ruby = context.runtime; Encoding enc = ruby.getEncodingService().findEncoding(ruby.newString(outputCharset)); if (enc != null) { r.setEncoding(enc); } return r; } }
ByteList convert_byte(ByteList str, String inputCharset, NKFCharset output) { String outputCharset = output.getCharset(); CharsetDecoder decoder; CharsetEncoder encoder; try { decoder = Charset.forName(inputCharset).newDecoder(); encoder = Charset.forName(outputCharset).newEncoder(); } catch (UnsupportedCharsetException e) { throw context.runtime.newArgumentError("invalid charset"); } ByteBuffer buf = ByteBuffer.wrap(str.getUnsafeBytes(), str.begin(), str.length()); try { CharBuffer cbuf = decoder.decode(buf); encoder.onUnmappableCharacter(java.nio.charset.CodingErrorAction.IGNORE); buf = encoder.encode(cbuf); } catch (CharacterCodingException e) { throw context.runtime.newArgumentError("invalid encoding"); } byte[] arr = buf.array(); ByteList r = new ByteList(arr, 0, buf.limit()); if (outputCharset.equalsIgnoreCase("Windows-31J")) outputCharset = "Shift_JIS"; if (outputCharset.equalsIgnoreCase("UTF-16")) outputCharset = "UTF-16BE"; Ruby ruby = context.runtime; Encoding enc = ruby.getEncodingService().findEncoding(ruby.newString(outputCharset)); if (enc != null) { r.setEncoding(enc); } return r; } }