「ISO-8859-1」(Latin-1) でエンコードされた XML ファイルを受け取りました
私が持っているファイル内(他のタグの中でも)<OtherText>Example "content" And ─</OtherText>
なんらかの理由で、これを XMLTextReader にロードし、"XmlReader.Value" を実行して値を返すと、"content" が返されます。そして ─
次に、Latin-1 エンコーディングのみを受け入れるデータベースに直面すると、明らかにエラーになります。
私は次のことを試しました:
- バイトに変換し、Encoding.Convert を使用して UTF-8 から Latin-1 に変更します (代わりに "?" が大量に表示されます)。
- StreamReader(file,Encoding.whatever ) を使用してファイルを XmlTextReader にロードする
そして、いくつかのバリエーションと、インターネットおよび StackOverflow istelf でのさまざまな方法があります。
.NET 文字列が UTF-16 であることは理解していますが、理解できないのは、UTF-8 文字が存在する場合の正しいマークアップを含む完全に Latin-1 形式の XML ファイルであり、古いデータベースおよび Web と互換性がある理由です ( HTML マークアップなど) を単純に上書きし、UTF-8 でエンコードされた文字列を出力します。
独自のカスタム テキスト パーサーを作成する以外に、これを回避する方法はありませんか ???