Top Inners Fields Constructors Methods
org.jruby.runtime.encoding

public final Class EncodingService

extends Object
Class Inheritance
Imports
org.jcodings.Encoding, .EncodingDB, .EncodingDB.Entry, org.jcodings.specific.ASCIIEncoding, .ISO8859_16Encoding, .UTF8Encoding, .USASCIIEncoding, org.jcodings.spi.ISO_8859_16, org.jcodings.util.CaseInsensitiveBytesHash, .Hash.HashEntryIterator, org.jruby.Ruby, .RubyEncoding, .RubyString, org.jruby.javasupport.Java, org.jruby.platform.Platform, org.jruby.runtime.ThreadContext, org.jruby.runtime.builtin.IRubyObject, org.jruby.util.ByteList, .SafePropertyAccessor, java.io.Console, java.lang.reflect.Field, java.nio.charset.Charset, .UnsupportedCharsetException, java.util.Arrays, java.util.regex.Matcher, .Pattern, org.jruby.util.cli.Options, org.jruby.util.io.EncodingUtils

Nested and Inner Type Summary

Modifier and TypeClass and Description
private static enum
EncodingService.SpecialEncoding

Represents one of the four "special" internal encoding names: internal, external, locale, or filesystem.

Field Summary

Modifier and TypeField and Description
private final CaseInsensitiveBytesHash<EncodingDB.Entry>
private final Encoding
private Encoding
private static ByteList
private Encoding
private Encoding
private Encoding
private RubyEncoding[]
private final IRubyObject[]
private final CaseInsensitiveBytesHash<EncodingDB.Entry>
private static final ByteList
private static final ByteList
private static final ByteList
private final Encoding
private static final ByteList
private Encoding
private static final Pattern
private final Ruby

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
public Charset

Returns:

the charset
charsetForEncoding
(Encoding
the encoding
encoding
)

Get a java.nio Charset for the given encoding, or null if impossible

private void
public IRubyObject
public void
private void
public void
public EncodingDB.Entry
public EncodingDB.Entry
findAliasEntry(byte[] bytes)

public Encoding

Returns:

the Encoding object found, nil (for internal), or raises ArgumentError
findEncoding
(IRubyObject
the object to coerce and use to look up encoding. The coerced String must be ASCII-compatible.
str
)

Find an encoding given a Ruby object, coercing it to a String in the process.

private Encoding
findEncodingCommon(IRubyObject str, boolean error)

private Encoding
findEncodingCommon(ByteList name, boolean error)

public EncodingDB.Entry
public EncodingDB.Entry
findEncodingEntry(byte[] bytes)

public Encoding

Returns:

the Encoding object found, nil (for internal)
findEncodingNoError
(IRubyObject
the object to coerce and use to look up encoding. The coerced String must be ASCII-compatible.
str
)

Find an encoding given a Ruby object, coercing it to a String in the process.

public Encoding
public IRubyObject
findEncodingObject(byte[] bytes)

public EncodingDB.Entry
public EncodingDB.Entry
public Encoding

Returns:

the Encoding object found, or raises ArgumentError
findEncodingWithError
(ByteList
the name of the encoding to look up
name
)

Find a non-special encoding, raising argument error if it does not exist.

public EncodingDB.Entry

Returns:

the Encoding object found, nil (for internal), or raises ArgumentError
findEntry
(IRubyObject
the object to coerce and use to look up encoding. The coerced String must be ASCII-compatible.
str
)

Find an encoding given a Ruby object, coercing it to a String in the process.

private EncodingDB.Entry
private EncodingDB.Entry

Returns:

the EncodingDB.Entry object found, or raises ArgumentError
findEntryWithError
(ByteList
the name of the encoding to look up
name
)

Find a non-special encoding Entry, raising argument error if it does not exist.

public CaseInsensitiveBytesHash<EncodingDB.Entry>
public Encoding
public Encoding

Returns:

console codepage
getConsoleEncoding
()

Since Java 1.6, class java.io.Console is available.

public IRubyObject
public Encoding
public Encoding
public IRubyObject
public Encoding
public Encoding
public RubyEncoding
private Encoding
getEncodingFromNKFName(final String name)
Deprecated since 10.0.

public Encoding
private Encoding
public Encoding
public Encoding
public IRubyObject[]
public CaseInsensitiveBytesHash<EncodingDB.Entry>
public Encoding
public Encoding
public Encoding
getFileSystemEncoding(Ruby runtime)
Deprecated

public Encoding
public Encoding
public Encoding
public Encoding
getWindowsFilesystemEncoding(Ruby runtime)
Deprecated since 10.0.

public Encoding
public Encoding
private RubyEncoding
public IRubyObject
public void
setDefaultExternalEncoding(Encoding defaultExternalEncoding)

public void
setDefaultFilesystemEncoding(Encoding defaultFilesystemEncoding)

public void
setDefaultInternalEncoding(Encoding defaultInternalEncoding)

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Field Detail

aliasesback to summary
private final CaseInsensitiveBytesHash<EncodingDB.Entry> aliases
ascii8bitback to summary
private final Encoding ascii8bit
consoleEncodingback to summary
private Encoding consoleEncoding
defaultCharsetNameback to summary
private static ByteList defaultCharsetName
defaultExternalEncodingback to summary
private Encoding defaultExternalEncoding
defaultFilesystemEncodingback to summary
private Encoding defaultFilesystemEncoding
defaultInternalEncodingback to summary
private Encoding defaultInternalEncoding
encodingIndexback to summary
private RubyEncoding[] encodingIndex
encodingListback to summary
private final IRubyObject[] encodingList
encodingsback to summary
private final CaseInsensitiveBytesHash<EncodingDB.Entry> encodings
EXTERNAL_BLback to summary
private static final ByteList EXTERNAL_BL
FILESYSTEM_BLback to summary
private static final ByteList FILESYSTEM_BL
INTERNAL_BLback to summary
private static final ByteList INTERNAL_BL
javaDefaultback to summary
private final Encoding javaDefault
LOCALE_BLback to summary
private static final ByteList LOCALE_BL
localeEncodingback to summary
private Encoding localeEncoding
MS_CP_PATTERNback to summary
private static final Pattern MS_CP_PATTERN
runtimeback to summary
private final Ruby runtime

Constructor Detail

EncodingServiceback to summary
public EncodingService(Ruby runtime)

Method Detail

charsetForEncodingback to summary
public Charset charsetForEncoding(Encoding encoding)

Get a java.nio Charset for the given encoding, or null if impossible

Parameters
encoding:Encoding

the encoding

Returns:Charset

the charset

checkAsciiEncodingNameback to summary
private void checkAsciiEncodingName(ByteList name)
convertEncodingToRubyEncodingback to summary
public IRubyObject convertEncodingToRubyEncoding(Encoding defaultEncoding)
defineAliasesback to summary
public void defineAliases(ThreadContext context)
defineEncodingConstantback to summary
private void defineEncodingConstant(ThreadContext context, RubyEncoding encoding, String constName)
defineEncodingsback to summary
public void defineEncodings(ThreadContext context)
findAliasEntryback to summary
public EncodingDB.Entry findAliasEntry(ByteList bytes)
findAliasEntryback to summary
public EncodingDB.Entry findAliasEntry(byte[] bytes)
findEncodingback to summary
public Encoding findEncoding(IRubyObject str)

Find an encoding given a Ruby object, coercing it to a String in the process.

Parameters
str:IRubyObject

the object to coerce and use to look up encoding. The coerced String must be ASCII-compatible.

Returns:Encoding

the Encoding object found, nil (for internal), or raises ArgumentError

findEncodingCommonback to summary
private Encoding findEncodingCommon(IRubyObject str, boolean error)
findEncodingCommonback to summary
private Encoding findEncodingCommon(ByteList name, boolean error)
findEncodingEntryback to summary
public EncodingDB.Entry findEncodingEntry(ByteList bytes)
findEncodingEntryback to summary
public EncodingDB.Entry findEncodingEntry(byte[] bytes)
findEncodingNoErrorback to summary
public Encoding findEncodingNoError(IRubyObject str)

Find an encoding given a Ruby object, coercing it to a String in the process. This version does not raise a Ruby error if it can't find the encoding, and simply returns null.

Parameters
str:IRubyObject

the object to coerce and use to look up encoding. The coerced String must be ASCII-compatible.

Returns:Encoding

the Encoding object found, nil (for internal)

findEncodingNoErrorback to summary
public Encoding findEncodingNoError(ByteList str)
findEncodingObjectback to summary
public IRubyObject findEncodingObject(byte[] bytes)
findEncodingOrAliasEntryback to summary
public EncodingDB.Entry findEncodingOrAliasEntry(ByteList bytes)
findEncodingOrAliasEntryback to summary
public EncodingDB.Entry findEncodingOrAliasEntry(byte[] bytes)
findEncodingWithErrorback to summary
public Encoding findEncodingWithError(ByteList name)

Find a non-special encoding, raising argument error if it does not exist.

Parameters
name:ByteList

the name of the encoding to look up

Returns:Encoding

the Encoding object found, or raises ArgumentError

findEntryback to summary
public EncodingDB.Entry findEntry(IRubyObject str)

Find an encoding given a Ruby object, coercing it to a String in the process.

Parameters
str:IRubyObject

the object to coerce and use to look up encoding. The coerced String must be ASCII-compatible.

Returns:EncodingDB.Entry

the Encoding object found, nil (for internal), or raises ArgumentError

findEntryFromEncodingback to summary
private EncodingDB.Entry findEntryFromEncoding(Encoding e)
findEntryWithErrorback to summary
private EncodingDB.Entry findEntryWithError(ByteList name)

Find a non-special encoding Entry, raising argument error if it does not exist.

Parameters
name:ByteList

the name of the encoding to look up

Returns:EncodingDB.Entry

the EncodingDB.Entry object found, or raises ArgumentError

getAliasesback to summary
public CaseInsensitiveBytesHash<EncodingDB.Entry> getAliases()
getAscii8bitEncodingback to summary
public Encoding getAscii8bitEncoding()
getConsoleEncodingback to summary
public Encoding getConsoleEncoding()

Since Java 1.6, class java.io.Console is available. But the encoding or codepage of the underlying connected console is currently private. Had to use Reflection to get it.

Returns:Encoding

console codepage

getDefaultExternalback to summary
public IRubyObject getDefaultExternal()
getDefaultExternalEncodingback to summary
public Encoding getDefaultExternalEncoding()
getDefaultFilesystemEncodingback to summary
public Encoding getDefaultFilesystemEncoding()
getDefaultInternalback to summary
public IRubyObject getDefaultInternal()
getDefaultInternalEncodingback to summary
public Encoding getDefaultInternalEncoding()
getDefaultInternalEncodingOrDefaultback to summary
public Encoding getDefaultInternalEncodingOrDefault()
getEncodingback to summary
public RubyEncoding getEncoding(Encoding enc)
getEncodingFromNKFNameback to summary
private Encoding getEncodingFromNKFName(final String name)

Deprecated

since 10.0.

Annotations
@Deprecated
since:10.0
getEncodingFromObjectback to summary
public Encoding getEncodingFromObject(IRubyObject arg)
getEncodingFromObjectCommonback to summary
private Encoding getEncodingFromObjectCommon(IRubyObject arg, boolean error)
getEncodingFromObjectNoErrorback to summary
public Encoding getEncodingFromObjectNoError(IRubyObject arg)
getEncodingFromStringback to summary
public Encoding getEncodingFromString(String string)
getEncodingListback to summary
public IRubyObject[] getEncodingList()
getEncodingsback to summary
public CaseInsensitiveBytesHash<EncodingDB.Entry> getEncodings()
getEnvEncodingback to summary
public Encoding getEnvEncoding()
getFileSystemEncodingback to summary
public Encoding getFileSystemEncoding()
getFileSystemEncodingback to summary
public Encoding getFileSystemEncoding(Ruby runtime)

Deprecated

Annotations
@Deprecated
getJavaDefaultback to summary
public Encoding getJavaDefault()
getLocaleEncodingback to summary
public Encoding getLocaleEncoding()
getUSAsciiEncodingback to summary
public Encoding getUSAsciiEncoding()
getWindowsFilesystemEncodingback to summary
public Encoding getWindowsFilesystemEncoding(Ruby runtime)

Deprecated

since 10.0.

Annotations
@Deprecated
since:10.0
getWindowsFilesystemEncodingback to summary
public Encoding getWindowsFilesystemEncoding(ThreadContext context)
loadEncodingback to summary
public Encoding loadEncoding(ByteList name)
loadEncodingEntryback to summary
private RubyEncoding loadEncodingEntry(final EncodingDB.Entry entry)
rubyEncodingFromObjectback to summary
public IRubyObject rubyEncodingFromObject(IRubyObject str)
setDefaultExternalEncodingback to summary
public void setDefaultExternalEncoding(Encoding defaultExternalEncoding)
setDefaultFilesystemEncodingback to summary
public void setDefaultFilesystemEncoding(Encoding defaultFilesystemEncoding)
setDefaultInternalEncodingback to summary
public void setDefaultInternalEncoding(Encoding defaultInternalEncoding)
org.jruby.runtime.encoding back to summary

private final Enum EncodingService.SpecialEncoding

extends Enum<EncodingService.SpecialEncoding>
Class Inheritance

Represents one of the four "special" internal encoding names: internal, external, locale, or filesystem.

Field Summary

Modifier and TypeField and Description
public static final EncodingService.SpecialEncoding
public static final EncodingService.SpecialEncoding
public static final EncodingService.SpecialEncoding
public static final EncodingService.SpecialEncoding

Constructor Summary

AccessConstructor and Description
private

Method Summary

Modifier and TypeMethod and Description
public Encoding
toEncoding(Ruby runtime)

public static EncodingService.SpecialEncoding
public static EncodingService.SpecialEncoding
public static EncodingService.SpecialEncoding[]
Inherited from java.lang.Enum:
clonecompareTodescribeConstableequalsfinalizegetDeclaringClasshashCodenameordinaltoStringvalueOf

Field Detail

EXTERNALback to summary
public static final EncodingService.SpecialEncoding EXTERNAL
FILESYSTEMback to summary
public static final EncodingService.SpecialEncoding FILESYSTEM
INTERNALback to summary
public static final EncodingService.SpecialEncoding INTERNAL
LOCALEback to summary
public static final EncodingService.SpecialEncoding LOCALE

Constructor Detail

SpecialEncodingback to summary
private SpecialEncoding()

Method Detail

toEncodingback to summary
public Encoding toEncoding(Ruby runtime)
valueOfback to summary
public static EncodingService.SpecialEncoding valueOf(String name)
valueOfback to summary
public static EncodingService.SpecialEncoding valueOf(ByteList name)
valuesback to summary
public static EncodingService.SpecialEncoding[] values()