public final class EncodingService
extends java.lang.Object
| Modifier and Type | Class and Description |
|---|---|
private static class |
EncodingService.SpecialEncoding
Represents one of the four "special" internal encoding names: internal,
external, locale, or filesystem.
|
| Modifier and Type | Field and Description |
|---|---|
private org.jcodings.util.CaseInsensitiveBytesHash<org.jcodings.EncodingDB.Entry> |
aliases |
private org.jcodings.Encoding |
ascii8bit |
private RubyEncoding[] |
encodingIndex |
private IRubyObject[] |
encodingList |
private org.jcodings.util.CaseInsensitiveBytesHash<org.jcodings.EncodingDB.Entry> |
encodings |
private static org.jruby.util.ByteList |
EXTERNAL_BL |
private static org.jruby.util.ByteList |
FILESYSTEM_BL |
private static org.jruby.util.ByteList |
INTERNAL_BL |
private org.jcodings.Encoding |
javaDefault |
private static org.jruby.util.ByteList |
LOCALE_BL |
private Ruby |
runtime |
| Constructor and Description |
|---|
EncodingService(Ruby runtime) |
| Modifier and Type | Method and Description |
|---|---|
java.nio.charset.Charset |
charsetForEncoding(org.jcodings.Encoding encoding)
Get a java.nio Charset for the given encoding, or null if impossible
|
private void |
checkAsciiEncodingName(org.jruby.util.ByteList name) |
IRubyObject |
convertEncodingToRubyEncoding(org.jcodings.Encoding defaultEncoding) |
void |
defineAliases() |
private void |
defineEncodingConstant(Ruby runtime,
RubyEncoding encoding,
byte[] constName,
int constP,
int constEnd) |
private void |
defineEncodingConstants(Ruby runtime,
RubyEncoding encoding,
byte[] name,
int p,
int end) |
void |
defineEncodings() |
org.jcodings.EncodingDB.Entry |
findAliasEntry(byte[] bytes) |
org.jcodings.EncodingDB.Entry |
findAliasEntry(org.jruby.util.ByteList bytes) |
org.jcodings.Encoding |
findEncoding(IRubyObject str)
Find an encoding given a Ruby object, coercing it to a String in the process.
|
private org.jcodings.Encoding |
findEncodingCommon(IRubyObject str,
boolean error) |
org.jcodings.EncodingDB.Entry |
findEncodingEntry(byte[] bytes) |
org.jcodings.EncodingDB.Entry |
findEncodingEntry(org.jruby.util.ByteList bytes) |
org.jcodings.Encoding |
findEncodingNoError(IRubyObject str)
Find an encoding given a Ruby object, coercing it to a String in the process.
|
org.jcodings.EncodingDB.Entry |
findEncodingOrAliasEntry(byte[] bytes) |
org.jcodings.EncodingDB.Entry |
findEncodingOrAliasEntry(org.jruby.util.ByteList bytes) |
org.jcodings.Encoding |
findEncodingWithError(org.jruby.util.ByteList name)
Find a non-special encoding, raising argument error if it does not exist.
|
org.jcodings.EncodingDB.Entry |
findEntry(IRubyObject str)
Find an encoding given a Ruby object, coercing it to a String in the process.
|
private org.jcodings.EncodingDB.Entry |
findEntryFromEncoding(org.jcodings.Encoding e) |
private org.jcodings.EncodingDB.Entry |
findEntryWithError(org.jruby.util.ByteList name)
Find a non-special encoding Entry, raising argument error if it does not exist.
|
org.jcodings.util.CaseInsensitiveBytesHash<org.jcodings.EncodingDB.Entry> |
getAliases() |
org.jcodings.Encoding |
getAscii8bitEncoding() |
org.jcodings.Encoding |
getConsoleEncoding()
Since Java 1.6, class
Console is available. |
IRubyObject |
getDefaultExternal() |
IRubyObject |
getDefaultInternal() |
RubyEncoding |
getEncoding(org.jcodings.Encoding enc) |
private org.jcodings.Encoding |
getEncodingFromNKFId(IRubyObject id) |
org.jcodings.Encoding |
getEncodingFromObject(IRubyObject arg) |
private org.jcodings.Encoding |
getEncodingFromObjectCommon(IRubyObject arg,
boolean error) |
org.jcodings.Encoding |
getEncodingFromObjectNoError(IRubyObject arg) |
org.jcodings.Encoding |
getEncodingFromString(java.lang.String string) |
IRubyObject[] |
getEncodingList() |
org.jcodings.util.CaseInsensitiveBytesHash<org.jcodings.EncodingDB.Entry> |
getEncodings() |
org.jcodings.Encoding |
getFileSystemEncoding(Ruby runtime) |
org.jcodings.Encoding |
getJavaDefault() |
org.jcodings.Encoding |
getLocaleEncoding() |
org.jcodings.Encoding |
getUSAsciiEncoding() |
org.jcodings.Encoding |
loadEncoding(org.jruby.util.ByteList name) |
IRubyObject |
rubyEncodingFromObject(IRubyObject str) |
private final org.jcodings.util.CaseInsensitiveBytesHash<org.jcodings.EncodingDB.Entry> encodings
private final org.jcodings.util.CaseInsensitiveBytesHash<org.jcodings.EncodingDB.Entry> aliases
private final IRubyObject[] encodingList
private RubyEncoding[] encodingIndex
private final Ruby runtime
private final org.jcodings.Encoding ascii8bit
private final org.jcodings.Encoding javaDefault
private static final org.jruby.util.ByteList LOCALE_BL
private static final org.jruby.util.ByteList EXTERNAL_BL
private static final org.jruby.util.ByteList INTERNAL_BL
private static final org.jruby.util.ByteList FILESYSTEM_BL
public EncodingService(Ruby runtime)
public org.jcodings.Encoding getConsoleEncoding()
Console is available.
But the encoding or codepage of the underlying connected
console is currently private. Had to use Reflection to get it.public org.jcodings.Encoding getUSAsciiEncoding()
public org.jcodings.Encoding getAscii8bitEncoding()
public org.jcodings.Encoding getFileSystemEncoding(Ruby runtime)
public org.jcodings.util.CaseInsensitiveBytesHash<org.jcodings.EncodingDB.Entry> getEncodings()
public org.jcodings.util.CaseInsensitiveBytesHash<org.jcodings.EncodingDB.Entry> getAliases()
public org.jcodings.EncodingDB.Entry findEncodingEntry(org.jruby.util.ByteList bytes)
public org.jcodings.EncodingDB.Entry findEncodingEntry(byte[] bytes)
public org.jcodings.EncodingDB.Entry findAliasEntry(org.jruby.util.ByteList bytes)
public org.jcodings.EncodingDB.Entry findAliasEntry(byte[] bytes)
public org.jcodings.EncodingDB.Entry findEncodingOrAliasEntry(org.jruby.util.ByteList bytes)
public org.jcodings.EncodingDB.Entry findEncodingOrAliasEntry(byte[] bytes)
public org.jcodings.Encoding getLocaleEncoding()
public IRubyObject[] getEncodingList()
public org.jcodings.Encoding loadEncoding(org.jruby.util.ByteList name)
public RubyEncoding getEncoding(org.jcodings.Encoding enc)
public void defineEncodings()
public void defineAliases()
private void defineEncodingConstants(Ruby runtime, RubyEncoding encoding, byte[] name, int p, int end)
private void defineEncodingConstant(Ruby runtime, RubyEncoding encoding, byte[] constName, int constP, int constEnd)
public IRubyObject getDefaultExternal()
public IRubyObject getDefaultInternal()
public IRubyObject convertEncodingToRubyEncoding(org.jcodings.Encoding defaultEncoding)
public org.jcodings.Encoding getJavaDefault()
public org.jcodings.Encoding getEncodingFromObject(IRubyObject arg)
public org.jcodings.Encoding getEncodingFromObjectNoError(IRubyObject arg)
private org.jcodings.Encoding getEncodingFromObjectCommon(IRubyObject arg, boolean error)
private org.jcodings.Encoding getEncodingFromNKFId(IRubyObject id)
public org.jcodings.Encoding getEncodingFromString(java.lang.String string)
public org.jcodings.Encoding findEncoding(IRubyObject str)
str - the object to coerce and use to look up encoding. The coerced String
must be ASCII-compatible.public org.jcodings.Encoding findEncodingNoError(IRubyObject str)
str - the object to coerce and use to look up encoding. The coerced String
must be ASCII-compatible.private org.jcodings.Encoding findEncodingCommon(IRubyObject str, boolean error)
public org.jcodings.EncodingDB.Entry findEntry(IRubyObject str)
str - the object to coerce and use to look up encoding. The coerced String
must be ASCII-compatible.public IRubyObject rubyEncodingFromObject(IRubyObject str)
public java.nio.charset.Charset charsetForEncoding(org.jcodings.Encoding encoding)
encoding - the encodingprivate void checkAsciiEncodingName(org.jruby.util.ByteList name)
public org.jcodings.Encoding findEncodingWithError(org.jruby.util.ByteList name)
name - the name of the encoding to look upprivate org.jcodings.EncodingDB.Entry findEntryWithError(org.jruby.util.ByteList name)
name - the name of the encoding to look upprivate org.jcodings.EncodingDB.Entry findEntryFromEncoding(org.jcodings.Encoding e)