CharsetEncoder 类

定义

可将十六位 Unicode 字符序列转换为特定字符集中的字节序列的引擎。

[Android.Runtime.Register("java/nio/charset/CharsetEncoder", DoNotGenerateAcw=true)]
public abstract class CharsetEncoder : Java.Lang.Object
[<Android.Runtime.Register("java/nio/charset/CharsetEncoder", DoNotGenerateAcw=true)>]
type CharsetEncoder = class
    inherit Object
继承
CharsetEncoder
属性

注解

可将十六位 Unicode 字符序列转换为特定字符集中的字节序列的引擎。

“steps”>

输入字符序列在字符缓冲区或一系列此类缓冲区中提供。 输出字节序列写入字节缓冲区或一系列此类缓冲区。 应始终通过进行以下方法调用序列(以下简称 编码操作)来使用编码器:

<老>

<李>

通过 #reset reset 方法重置编码器,除非之前未使用过;

</李>

<李>

#encode encode调用方法零次或多次,只要其他输入可用,为参数传递falseendOfInput并填充输入缓冲区,并在调用之间刷新输出缓冲区;

</李>

<李>

#encode encode最后调用方法一次,为 endOfInput 参数传递true;然后

</李>

<李>

#flush flush调用 方法,以便编码器可以将任何内部状态刷新到输出缓冲区。

</李>

</老>

每次调用 #encode encode 方法都将从输入缓冲区中编码尽可能多的字符,从而将生成的字节写入输出缓冲区。 #encode encode当需要更多输入、输出缓冲区中空间不足或发生编码错误时,方法将返回 。 在每种情况下,都会返回 一个 CoderResult 对象来描述终止的原因。 调用程序可以检查此对象并填充输入缓冲区、刷新输出缓冲区或尝试从编码错误中恢复(视情况而定),然后重试。

“ce”>

有两种常规类型的编码错误。 如果输入字符序列不是合法的 16 位 Unicode 序列,则认为输入 的格式不正确。 如果输入字符序列是合法的,但不能映射到给定字符集中的有效字节序列,则遇到 不可应用字符

“cae”>

如何处理编码错误取决于针对该类型的错误请求的操作,该操作由 类的 CodingErrorAction 实例描述。 可能的错误操作包括:CodingErrorAction#IGNORE 忽略错误输入、CodingErrorAction#REPORT 通过返回 CoderResult 的对象向调用方报告错误,或将 CodingErrorAction#REPLACE 错误输入替换为替换字节数组的当前值。 替换

最初设置为编码器的默认替换,通常 (但不总是) 具有初始值 { (byte)'?' };

其值可以通过 方法更改 #replaceWith(byte[]) replaceWith

输入格式错误和不可应用字符错误的默认操作是对 CodingErrorAction#REPORT 报告它们。 格式错误的输入错误操作可以通过 方法更改 #onMalformedInput(CodingErrorAction) onMalformedInput ;不可应用字符操作可以通过 方法更改 #onUnmappableCharacter(CodingErrorAction) onUnmappableCharacter

此类旨在处理编码过程的许多详细信息,包括错误操作的实现。 特定字符集(此类的具体子类)的编码器只需实现抽象 #encodeLoop encodeLoop 方法,该方法封装基本编码循环。 此外,维护内部状态的子类应替代 #implFlush implFlush#implReset implReset 方法。

此类的实例对于多个并发线程使用是不安全的。

在 1.4 中添加。

java.nio.charset.CharsetEncoderJava 文档。

此页面的某些部分是基于 创建和共享的工作进行的修改,并根据 署名许可中所述的条款使用。

构造函数

CharsetEncoder(Charset, Single, Single)

初始化新的编码器。

CharsetEncoder(Charset, Single, Single, Byte[])

初始化新的编码器。

CharsetEncoder(IntPtr, JniHandleOwnership)

创建 JNI 对象的托管表示形式时使用的构造函数;由运行时调用。

属性

Class

返回此 Object的运行时类。

(继承自 Object)
Handle

基础 Android 实例的句柄。

(继承自 Object)
JniIdentityHashCode

可将十六位 Unicode 字符序列转换为特定字符集中的字节序列的引擎。

(继承自 Object)
JniPeerMembers

可将十六位 Unicode 字符序列转换为特定字符集中的字节序列的引擎。

PeerReference

可将十六位 Unicode 字符序列转换为特定字符集中的字节序列的引擎。

(继承自 Object)
ThresholdClass

此 API 支持 Mono for Android 基础结构,不应直接从代码中使用。

ThresholdType

此 API 支持 Mono for Android 基础结构,不应直接从代码中使用。

方法

AverageBytesPerChar()

返回将为输入的每个字符生成的平均字节数。

CanEncode(Char)

指示此编码器是否可以对给定字符进行编码。

CanEncode(ICharSequence)

指示此编码器是否可以对给定字符序列进行编码。

CanEncode(String)

指示此编码器是否可以对给定字符序列进行编码。

Charset()

返回创建此编码器的字符集。

Clone()

创建并返回此对象的副本。

(继承自 Object)
Dispose()

可将十六位 Unicode 字符序列转换为特定字符集中的字节序列的引擎。

(继承自 Object)
Dispose(Boolean)

可将十六位 Unicode 字符序列转换为特定字符集中的字节序列的引擎。

(继承自 Object)
Encode(CharBuffer)

将单个输入字符缓冲区的剩余内容编码为新分配的字节缓冲区的便利方法。

Encode(CharBuffer, ByteBuffer, Boolean)

对给定输入缓冲区中尽可能多的字符进行编码,将结果写入给定的输出缓冲区。

EncodeLoop(CharBuffer, ByteBuffer)

将一个或多个字符编码为一个或多个字节。

Equals(Object)

指示某个其他对象是否“等于”此对象。

(继承自 Object)
Flush(ByteBuffer)

刷新此编码器。

GetHashCode()

返回对象的哈希代码值。

(继承自 Object)
ImplFlush(ByteBuffer)

刷新此编码器。

ImplOnMalformedInput(CodingErrorAction)

报告对此编码器的格式不正确的输入操作的更改。

ImplOnUnmappableCharacter(CodingErrorAction)

报告对此编码器的不可应用字符操作的更改。

ImplReplaceWith(Byte[])

报告对此编码器的替换值的更改。

ImplReset()

重置此编码器,清除任何特定于字符集的内部状态。

IsLegalReplacement(Byte[])

指示给定的字节数组是否是此编码器的合法替换值。

JavaFinalize()

当垃圾回收确定不再引用对象时,由垃圾回收器对对象调用。

(继承自 Object)
MalformedInputAction()

返回此编码器针对格式错误的输入错误的当前操作。

MaxBytesPerChar()

返回将为输入的每个字符生成的最大字节数。

Notify()

唤醒正在等待此对象的监视器的单个线程。

(继承自 Object)
NotifyAll()

唤醒正在等待此对象的监视器的所有线程。

(继承自 Object)
OnMalformedInput(CodingErrorAction)

针对格式错误的输入错误更改此编码器的操作。

OnUnmappableCharacter(CodingErrorAction)

针对不可应用字符错误更改此编码器的操作。

Replacement()

返回此编码器的替换值。

ReplaceWith(Byte[])

更改此编码器的替换值。

Reset()

重置此编码器,清除任何内部状态。

SetHandle(IntPtr, JniHandleOwnership)

设置 Handle 属性。

(继承自 Object)
ToArray<T>()

可将十六位 Unicode 字符序列转换为特定字符集中的字节序列的引擎。

(继承自 Object)
ToString()

返回对象的字符串表示形式。

(继承自 Object)
UnmappableCharacterAction()

返回此编码器针对不可应用字符错误的当前操作。

UnregisterFromRuntime()

可将十六位 Unicode 字符序列转换为特定字符集中的字节序列的引擎。

(继承自 Object)
Wait()

导致当前线程等待,直到它被唤醒,通常是通过 em <通知/em> 或 <em>interrupted</em>。<>

(继承自 Object)
Wait(Int64)

导致当前线程等待,直到它被唤醒,通常是通过 em <通知/em> 或 <em>interrupted</em>,或直到经过一定数量的实时。<>

(继承自 Object)
Wait(Int64, Int32)

导致当前线程等待,直到它被唤醒,通常是通过 em <通知/em> 或 <em>interrupted</em>,或直到经过一定数量的实时。<>

(继承自 Object)

显式接口实现

IJavaPeerable.Disposed()

可将十六位 Unicode 字符序列转换为特定字符集中的字节序列的引擎。

(继承自 Object)
IJavaPeerable.DisposeUnlessReferenced()

可将十六位 Unicode 字符序列转换为特定字符集中的字节序列的引擎。

(继承自 Object)
IJavaPeerable.Finalized()

可将十六位 Unicode 字符序列转换为特定字符集中的字节序列的引擎。

(继承自 Object)
IJavaPeerable.JniManagedPeerState

可将十六位 Unicode 字符序列转换为特定字符集中的字节序列的引擎。

(继承自 Object)
IJavaPeerable.SetJniIdentityHashCode(Int32)

可将十六位 Unicode 字符序列转换为特定字符集中的字节序列的引擎。

(继承自 Object)
IJavaPeerable.SetJniManagedPeerState(JniManagedPeerStates)

可将十六位 Unicode 字符序列转换为特定字符集中的字节序列的引擎。

(继承自 Object)
IJavaPeerable.SetPeerReference(JniObjectReference)

可将十六位 Unicode 字符序列转换为特定字符集中的字节序列的引擎。

(继承自 Object)

扩展方法

JavaCast<TResult>(IJavaObject)

执行 Android 运行时检查的类型转换。

JavaCast<TResult>(IJavaObject)

可将十六位 Unicode 字符序列转换为特定字符集中的字节序列的引擎。

GetJniTypeName(IJavaPeerable)

可将十六位 Unicode 字符序列转换为特定字符集中的字节序列的引擎。

适用于