public Encoding getLocaleEncoding() { Entry entry = findEncodingOrAliasEntry(new ByteList(Charset.defaultCharset().name().getBytes())); return entry == null ? ASCIIEncoding.INSTANCE : entry.getEncoding(); }
Encoding charset = entry.getEncoding(); r.setEncoding(charset);
Encoding charset = entry.getEncoding(); r.setEncoding(charset);
bytes.setEncoding(entry.getEncoding()); exc.getException().setInternalVariable("error_char", bytes);
bytes.setEncoding(entry.getEncoding()); exc.getException().setInternalVariable("error_char", bytes);
EncodingDB.Entry entry = runtime.getEncodingService().findEncodingOrAliasEntry(name); if (entry == null) return null; encoding = entry.getEncoding();
EncodingDB.Entry entry = runtime.getEncodingService().findEncodingOrAliasEntry(name); if (entry == null) return null; encoding = entry.getEncoding();
EncodingDB.Entry src = context.runtime.getEncodingService().findEncodingOrAliasEntry(new ByteList(sourceEncoding, false)); if (src != null) { senc = src.getEncoding(); EncodingDB.Entry dest = context.runtime.getEncodingService().findEncodingOrAliasEntry(new ByteList(destinationEncoding, false)); if (dest != null) { denc = dest.getEncoding();
throw runtime.newArgumentError("invalid encoding in marshaling stream: " + encodingName); Encoding encoding = entry.getEncoding(); strObj.setEncoding(encoding); continue;
throw runtime.newArgumentError("invalid encoding in marshaling stream: " + encodingName); Encoding encoding = entry.getEncoding(); strObj.setEncoding(encoding); continue;
encs[0] = EncodingDB.dummy(encNames[0]).getEncoding(); encs[1] = EncodingDB.dummy(encNames[1]).getEncoding();
EncodingDB.Entry src = context.runtime.getEncodingService().findEncodingOrAliasEntry(new ByteList(sourceEncoding, false)); if (src != null) { senc = src.getEncoding(); EncodingDB.Entry dest = context.runtime.getEncodingService().findEncodingOrAliasEntry(new ByteList(destinationEncoding, false)); if (dest != null) { denc = dest.getEncoding();
encs[0] = EncodingDB.dummy(encNames[0]).getEncoding(); encs[1] = EncodingDB.dummy(encNames[1]).getEncoding();
@Override public boolean call(ThreadContext context, IRubyObject fallback, EConv ec) { Ruby runtime = context.runtime; IRubyObject rep = RubyString.newStringNoCopy( runtime, new ByteList( ec.lastError.getErrorBytes(), ec.lastError.getErrorBytesP(), ec.lastError.getErrorBytesLength(), runtime.getEncodingService().findEncodingOrAliasEntry(ec.lastError.getSource()).getEncoding(), false) ); rep = innerCall(context, fallback, rep); if (!rep.isNil()) { rep = rep.convertToString(); Encoding repEnc = ((RubyString) rep).getEncoding(); ByteList repByteList = ((RubyString) rep).getByteList(); ec.insertOutput(repByteList.getUnsafeBytes(), repByteList.begin(), repByteList.getRealSize(), repEnc.getName()); // TODO: check for too-large replacement return true; } return false; }
@SuppressWarnings("unchecked") @JRubyMethod(name = "aliases", meta = true) public static IRubyObject aliases(ThreadContext context, IRubyObject recv) { Ruby runtime = context.runtime; EncodingService service = runtime.getEncodingService(); IRubyObject list[] = service.getEncodingList(); HashEntryIterator i = service.getAliases().entryIterator(); RubyHash result = RubyHash.newHash(runtime); while (i.hasNext()) { CaseInsensitiveBytesHash.CaseInsensitiveBytesHashEntry<Entry> e = ((CaseInsensitiveBytesHash.CaseInsensitiveBytesHashEntry<Entry>)i.next()); IRubyObject alias = RubyString.newUsAsciiStringShared(runtime, e.bytes, e.p, e.end - e.p).freeze(context); IRubyObject name = RubyString.newUsAsciiStringShared(runtime, ((RubyEncoding)list[e.value.getIndex()]).name).freeze(context); result.fastASet(alias, name); } result.fastASet(runtime.newString(EXTERNAL), runtime.newString(new ByteList(runtime.getDefaultExternalEncoding().getName()))); result.fastASet(runtime.newString(LOCALE), runtime.newString(new ByteList(service.getLocaleEncoding().getName()))); return result; }
@SuppressWarnings("unchecked") @JRubyMethod(name = "aliases", meta = true) public static IRubyObject aliases(ThreadContext context, IRubyObject recv) { Ruby runtime = context.runtime; EncodingService service = runtime.getEncodingService(); IRubyObject list[] = service.getEncodingList(); HashEntryIterator i = service.getAliases().entryIterator(); RubyHash result = RubyHash.newHash(runtime); while (i.hasNext()) { CaseInsensitiveBytesHash.CaseInsensitiveBytesHashEntry<Entry> e = ((CaseInsensitiveBytesHash.CaseInsensitiveBytesHashEntry<Entry>)i.next()); IRubyObject alias = RubyString.newUsAsciiStringShared(runtime, e.bytes, e.p, e.end - e.p).freeze(context); IRubyObject name = RubyString.newUsAsciiStringShared(runtime, ((RubyEncoding)list[e.value.getIndex()]).name).freeze(context); result.fastASet(alias, name); } result.fastASet(runtime.newString(EXTERNAL), runtime.newString(new ByteList(runtime.getDefaultExternalEncoding().getName()))); result.fastASet(runtime.newString(LOCALE), runtime.newString(new ByteList(service.getLocaleEncoding().getName()))); return result; }
@SuppressWarnings("unchecked") @JRubyMethod(name = "aliases", meta = true) public static IRubyObject aliases(ThreadContext context, IRubyObject recv) { Ruby runtime = context.runtime; EncodingService service = runtime.getEncodingService(); IRubyObject list[] = service.getEncodingList(); HashEntryIterator i = service.getAliases().entryIterator(); RubyHash result = RubyHash.newHash(runtime); while (i.hasNext()) { CaseInsensitiveBytesHash.CaseInsensitiveBytesHashEntry<Entry> e = ((CaseInsensitiveBytesHash.CaseInsensitiveBytesHashEntry<Entry>)i.next()); IRubyObject alias = RubyString.newUsAsciiStringShared(runtime, e.bytes, e.p, e.end - e.p).freeze(context); IRubyObject name = RubyString.newUsAsciiStringShared(runtime, ((RubyEncoding)list[e.value.getIndex()]).name).freeze(context); result.fastASet(alias, name); } result.fastASet(runtime.newString(EXTERNAL), runtime.newString(new ByteList(runtime.getDefaultExternalEncoding().getName()))); result.fastASet(runtime.newString(LOCALE), runtime.newString(new ByteList(service.getLocaleEncoding().getName()))); return result; }
@SuppressWarnings("unchecked") @JRubyMethod(name = "aliases", meta = true) public static IRubyObject aliases(ThreadContext context, IRubyObject recv) { Ruby runtime = context.runtime; EncodingService service = runtime.getEncodingService(); IRubyObject list[] = service.getEncodingList(); HashEntryIterator i = service.getAliases().entryIterator(); RubyHash result = RubyHash.newHash(runtime); while (i.hasNext()) { CaseInsensitiveBytesHash.CaseInsensitiveBytesHashEntry<Entry> e = ((CaseInsensitiveBytesHash.CaseInsensitiveBytesHashEntry<Entry>)i.next()); IRubyObject alias = RubyString.newUsAsciiStringShared(runtime, e.bytes, e.p, e.end - e.p).freeze(context); IRubyObject name = RubyString.newUsAsciiStringShared(runtime, ((RubyEncoding)list[e.value.getIndex()]).name).freeze(context); result.fastASet(alias, name); } result.fastASet(runtime.newString(EXTERNAL), runtime.newString(new ByteList(runtime.getDefaultExternalEncoding().getName()))); result.fastASet(runtime.newString(LOCALE), runtime.newString(new ByteList(service.getLocaleEncoding().getName()))); return result; }
@Override public boolean call(ThreadContext context, IRubyObject fallback, EConv ec) { Ruby runtime = context.runtime; IRubyObject rep = RubyString.newStringNoCopy( runtime, new ByteList( ec.lastError.getErrorBytes(), ec.lastError.getErrorBytesP(), ec.lastError.getErrorBytesLength(), runtime.getEncodingService().findEncodingOrAliasEntry(ec.lastError.getSource()).getEncoding(), false) ); rep = innerCall(context, fallback, rep); if (!rep.isNil()) { rep = rep.convertToString(); Encoding repEnc = ((RubyString) rep).getEncoding(); ByteList repByteList = ((RubyString) rep).getByteList(); ec.insertOutput(repByteList.getUnsafeBytes(), repByteList.begin(), repByteList.getRealSize(), repEnc.getName()); // TODO: check for too-large replacement return true; } return false; }
public Encoding getEncodingFromUnmarshaled(IRubyObject key) throws IOException { Encoding enc = null; if (key.asJavaString().equals(MarshalStream.SYMBOL_ENCODING_SPECIAL)) { // special case for USASCII and UTF8 if (unmarshalObject().isTrue()) { enc = UTF8Encoding.INSTANCE; } else { enc = USASCIIEncoding.INSTANCE; } } else if (key.asJavaString().equals("encoding")) { IRubyObject encodingNameObj = unmarshalObject(false); String encodingNameStr = encodingNameObj.asJavaString(); ByteList encodingName = new ByteList(ByteList.plain(encodingNameStr)); Entry entry = runtime.getEncodingService().findEncodingOrAliasEntry(encodingName); if (entry == null) { throw runtime.newArgumentError("invalid encoding in marshaling stream: " + encodingName); } enc = entry.getEncoding(); } return enc; }