Skip to content
Client Plugin

BOMリムーバー

必須の依存関係: io.ktor:ktor-client-bom-remover

コード例: client-bom-remover

バイトオーダーマーク (BOM) は、Unicode ファイルまたはストリームでエンコードされた文字です。BOM の主な目的は、テキストのストリームエンコーディングと、16ビットおよび32ビットエンコーディングのバイトオーダーを示すことです。

場合によっては、レスポンスボディから BOM を削除する必要があります。たとえば、UTF-8 エンコーディングでは、BOM の存在は任意であり、BOM の処理方法を知らないソフトウェアで読み取られると問題を引き起こす可能性があります。

Ktor クライアントは、UTF-8、UTF-16 (BE)、UTF-16 (LE)、UTF-32 (BE)、および UTF-32 (LE) エンコーディングのレスポンスボディから BOM を削除する BOMRemover プラグインを提供します。

BOMを削除しても、KtorはContent-Lengthヘッダーを変更せず、初期レスポンスの長さを保持することに注意してください。

依存関係を追加する

BOMRemover を使用するには、ビルドスクリプトに ktor-client-bom-remover アーティファクトを含める必要があります。

Kotlin
Groovy
XML

Ktor クライアントに必要なアーティファクトについては、

クライアントの依存関係の追加
既存のプロジェクトにクライアントの依存関係を追加する方法を学ぶ。
で詳しく学ぶことができます。

BOMRemover をインストールする

BOMRemover をインストールするには、クライアント設定ブロック 内の install 関数に渡します。

kotlin
import io.ktor.client.*
import io.ktor.client.engine.cio.*
import io.ktor.client.plugins.compression.*
//...
val client = HttpClient(CIO) {
    install(BOMRemover)
}