問題タブ [byte-order-mark]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
asp.net-mvc - BOM付きのUTF8エンコーディングでC#でGetBytes()する方法は?
C# の asp.net mvc 2 アプリケーションで UTF8 エンコーディングに問題があります。ユーザーが文字列から単純なテキストファイルをダウンロードできるようにしようとしています。次の行でバイト配列を取得しようとしています:
var x = Encoding.UTF8.GetBytes(csvString);
しかし、私がダウンロードのためにそれを返すとき:
return File(x, ..., ...);
BOM のないファイルを取得したため、クロアチア語の文字が正しく表示されません。これは、バイト配列にエンコード後の BOM が含まれていないためです。これらのバイトを手動で挿入しようとすると、正しく表示されますが、それは最善の方法ではありません。
また、UTF8Encoding クラス インスタンスを作成し、そのコンストラクターにブール値 (true) を渡して BOM を含めようとしましたが、どちらも機能しません。
誰にも解決策がありますか?ありがとう!
c# - テキストファイルの文字エンコーディングを検出する方法は?
ファイルで使用されている文字エンコーディングを検出しようとしています。
このコードを使用して、標準のエンコーディングを取得してみます
私の最初の 5 バイトは 60、118、56、46、49 です。
これらの最初の 5 バイトに一致するエンコーディングを示すグラフはありますか?
c++ - BOM エンコーディングなしの UCS-2 LE で標準のストリームを使用して C++ ファイルを書き込みます
標準の ofstream でファイルを出力すると、Notepad++ で ASCII\ANSI エンコーディングが表示されますが、これは正常だと思いますが、BOM なしの UCS-2 LE ではこれが必要です。このコードで何を変更すればよいかわかりません - 助けてもらえますか?
これは、BOM なしの UCS-2 LE の文字エンコーディングを使用したメッセージ ファイル形式 (.vmg) であり、C++ で作成したいものです。
java - JAXB2 Mtom 添付ファイルが BOM によって壊れている
Spring-WS で OXM を実行するために JAXB2 を使用しています。私が指定した XSD では、soap メッセージに大きな XML ファイルを添付する必要があるため、MTOM を使用してファイルを転送し、JAXB2Marshaller で MTOM を有効にしました。
JAXB2 は、期待される MIME タイプが text/xml である MTOM 添付ファイルをマーシャリングするときに、その要素を javax.xml.transform.Source オブジェクトとして配信します。いくつか検索した後、その Source オブジェクトをファイルに送信する方法を見つけることができました。
私が抱えている問題は、添付ファイルとして UTF-8 でエンコードされたファイルを送信すると、次のエラーが発生することです。
これは、ファイル内のエンコードされたテキストの前にあるバイト オーダー マークが原因です。この BOM は、Unicode 標準で許可されている UTF-8 でエンコードされたファイルでは必要ありませんが、Java は UTF-8 でエンコードされた BOM をサポートしていません。ストリーム。
BOM なしでファイルを送信することでこの問題を解決できますが、BOM を挿入するほとんどの Microsoft 製品で問題が発生するため、これは現実的ではありません。
Sun/Oracle が Streams でこの問題を修正することを拒否したための回避策はたくさんありますが、それらはすべて Stream にアクセスする必要があります。JAXB2 によって提供される Source Object には InputStream がなく、Reader オブジェクトのみがあります。UTF-8エンコーディングでBOMを無視する方法を知っているリーダーでSources Readerオブジェクトをラップするか、JAXB2が添付ファイルをソースに読み込む方法を変更して無視できるようにすることで、この問題を解決する方法はありますか? UTF-8 エンコーディングの BOM。
前もって感謝します、クレイグ
c# - XDocument: BOM なしで XML をファイルに保存
を使用してutf-8 XMLファイルを生成していますXDocument
。
ファイルは正しく生成され、xsd ファイルで正常に検証されます。
XML ファイルをオンライン サービスにアップロードしようとすると、サービスはファイルがwrong at line 1
;であると表示します。ファイルの最初のバイトの BOM が問題の原因であることを発見しました。
BOM がファイルに追加される理由と、BOM なしでファイルを保存する方法を知っていますか?
バイトオーダーマークウィキペディアの記事に記載されているように:
Unicode 標準では UTF-8 の BOM が許可され ていますが、必須でも推奨されていません。UTF-8 ではバイト オーダーは意味を持たないため、BOM は、テキスト ストリームまたはファイルを UTF-8 として識別するか、または BOM を持つ別の形式から変換されたことを識別するためにのみ機能します。
これはXDocument
問題ですか、それともオンライン サービス プロバイダーの担当者に連絡して、パーサーのアップグレードを依頼する必要がありますか?
ruby - UTF-8 でエンコードされたファイルから BOM を削除する方法はありますか?
UTF-8 でエンコードされたファイルから BOM を削除する方法はありますか?
すべての JSON ファイルが UTF-8 でエンコードされていることは知っていますが、JSON ファイルを編集したデータ入力担当者が BOM 付きの UTF-8 として保存しました。
Ruby スクリプトを実行して JSON を解析すると、エラーで失敗します。58 以上の JSON ファイルを手動で開き、BOM なしで UTF-8 に変換したくありません。
c# - .NET StreamReader が基になるストリームで UTF8 BOM を見つけたかどうかを検出するにはどうすればよいですか?
を取得しFileStream(filename,FileMode.Open,FileAccess.Read,FileShare.ReadWrite)
、次にを取得しStreamReader(stream,true)
ます。
ストリームが UTF8 BOM で開始されたかどうかを確認する方法はありますか? BOM のないファイルが StreamReader によって UTF8 として読み取られることに気付きました。
どうすればそれらを区別できますか?
html - サイトがIEクァークモードで実行されているのはなぜですか?
私はサイトを持っています:http : //www.sucramma.dk FF、Chrome、またはSafariを使用している場合、サイトは正常に表示されますが、IEではサイトは左揃えで実行されており、癖があります。モード。なんで?Doctypeが設定されました!
.net - バイトオーダーマークをデコードしないようにASCIIEncodingクラスに指示する方法
.net ASCIIEncodingクラスを使用してバイト配列を文字列にデコードする場合、バイト順序マークを検出して削除するコードを記述する必要がありますか、それともバイト順序マークを文字列にデコードしないようにASCIIEncodingに指示することはできますか?
これを行うときの私の問題は次のとおりです。
someStringは次のようになります。
それから私がこれを呼ぶとき:
最初の3バイトが原因で例外がスローされます。EFBBBF-UTF8バイト順マーク。したがって、デフォルトではなくUTF8エンコーディングを指定すると、次のようになります。
ASCIIEncodingは、バイト順序マークを文字列にデコードしようとはしませんでした。返された文字列をnotepad++にコピーすると、?が表示されます。XMLタグの前の文字。そのため、バイト順マークは単一のガベージ文字にデコードされています。この場合、バイト順マークのデコードを停止する最良の方法は何ですか?
java - BOM 文字をファイルに書き込まないようにするには?
UTF-8 をエンコーディングとして指定して、テキスト ファイルに書き込む Java コードがあります。
現在、書き込まれたファイルの一部には、<U+FEFF>
最初に文字が含まれており、そのファイルを使用する他のプログラムが混乱します。
他のプログラムの動作を変更することはできません。また、ファイルが別のマシン上にある可能性があるため、ファイルを外部で後処理することもできません。
この文字を最初に追加せずにファイルを書き込む方法はありますか?