私はHttpClientを使っていくつかのファイルを取得しています。私はバイト配列(バイト)に内容を入れました。今私はエンコーディングを検出する必要があります。 contenttypeは、html、css、JavaScriptまたはXML contenttypeのいずれかになります。HttpClient:エンコードを検出する正しい順序
現在、私はヘッダーから文字セットをチェックし、最後にcharsetメタタグのファイルの最初の部分をチェックする前にBOM(バイトオーダーマーク)をチェックします。 通常、競合がないため、正常に動作します。
しかし、この順番は正しいですか(競合の場合)?
Iはcorrently使用コード:
Encoding encoding;
try
{
encoding = Encoding.GetEncoding(responseMessage.Content.Headers.ContentType.CharSet);
}
catch
{
using (MemoryStream ms = new MemoryStream(bytes))
{
using (StreamReader sr = new StreamReader(ms, Encoding.Default, true))
{
char[] chars = new char[1024];
sr.Read(chars, 0, 1024);
string textDefault = new string(chars);
if (sr.CurrentEncoding == Encoding.Default)
{
encoding = Global.EncodingFraContentType(textDefault);
}
else
{
encoding = sr.CurrentEncoding;
}
}
}
}
responseInfo.Text = encoding.GetString(bytes);
文字セット/エンコーディングを検出する正しい順序は何ですか?あなたはファイルの先頭にUTF-8バイトオーダーマーク(BOM)をお持ちの場合
あなたの答えはちょっと混乱しているようです。文は開始されますが、終了しません。一部の引用符で囲まれていない部分は、リンク先のページから来ているようです。 –
@フレデリック - フィードバックありがとうございます。 – Anastasiosyal