問題タブ [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.

0 投票する
6 に答える
2958 参照

php - 未知の文字を出力するPHPインクルード関数

php インクルード関数を使用すると、インクルードは正常に実行されますが、インクルードの出力が出力される前に char も出力されます。char は 16 進値 3F であり、どこから来ているのかわかりませんが、すべてのインクルードで発生します。

最初はファイルのエンコーディングかと思いましたが、問題ないようです。私はそれを実証するためにテストケースを作成しました:(リンクが機能しなくなりましたhttp://driveefficiently.com/testinclude.phpこのファイルは以下のみで構成されています:

および include.inc は以下のみで構成されます。

それでも、出力は次のとおりです。ランダムな値を持つ char です。私がその起源を知らないのはこの値であり、時々私のサイトを少し台無しにしています。

これがどこから来ているのかについてのアイデアはありますか? 最初はファイルのエンコーディングが関係しているのではないかと思いましたが、問題はないと思います。

0 投票する
3 に答える
1814 参照

web-services - BOM は CF では想定されていませんが、IIS/SharePoint によって送信されます

cfinvoke を介して ColdFusion から SharePoint Web サービスを使用しようとしています (SOAP 応答自体を処理 (読み取り: 解析) したくないため)。

SOAP 応答にバイト オーダー マーク文字 (BOM) が含まれているため、CF で次の例外が発生します。

UTF-8 エンコーディングの標準には、オプションで BOM 文字 ( http://unicode.org/faq/utf_bom.html#29 ) が含まれます。Microsoft では、ほとんどの場合、UTF-8 でエンコードされたストリームに BOM 文字が含まれています。私が知る限り、IIS でそれを変更する方法はありません。JRun (ColdFusion) がデフォルトで使用する XML パーサーは、UTF-8 でエンコードされた XML ストリームの BOM 文字を処理しません。したがって、これを修正するには、JRun で使用される XML パーサーを変更する必要があるようです ( http://www.bpurcell.org/blog/index.cfm?mode=entry&entry=942 )。

Adobe は、BOM 文字を処理しないと述べています (5 月 2 日と 5 日の anonynomous と hall からのコメントを参照してください)。
http://livedocs.adobe.com/coldfusion/8/htmldocs/Tags_g-h_09.html#comments

0 投票する
4 に答える
1309 参照

file - Unicode ファイルのバイト オーダー マーカーを設定するにはどうすればよいですか?

これが「実際の」プログラミングの質問ではないことはわかっています。でも、それはプログラミングに関係するので、とにかく設定します。ファイルのバイト オーダー マーカーを読み取って、それが utf-8 か utf-16 かを確認するテストが必要なプログラムがあります。私の問題は、バイト オーダー マーカーを設定できるプログラム/テキスト エディターが見つからないことです。これをテキストファイルに設定する方法を誰か教えてもらえますか?

0 投票する
5 に答える
15956 参照

c# - File.ReadAllBytes (byte[]) からバイト オーダー マークを削除する

CSSファイルのセットを読み込んで結合し、GZippingするHTTPHandlerがあります。ただし、一部の CSS ファイルには (TFS 2005 自動マージのバグにより) バイト オーダー マークが含まれており、FireFox では BOM が実際のコンテンツの一部として読み込まれるため、クラス名などが台無しになります。 BOMの文字を?「」を探してバイト配列を手動で調べずにこれを行う簡単な方法はありますか?

0 投票する
2 に答える
30797 参照

.net - XML - ルート レベルのデータが無効です

UTF-8 でエンコードされた XSD ファイルがあり、それを実行するテキスト エディターではファイルの先頭に文字が表示されませんが、Visual Studio のデバッガーでプルアップすると、明らかに空の文字が表示されます。ファイルの前のボックス。

ボックスインファイル

エラーも表示されます:

ルート レベルのデータは無効です。行 1、位置 1。

代替テキスト

これが何かわかる人いますか?

更新: ファイルの種類を限定するために投稿を編集しました。これは、Microsoft の XSD 作成者によって作成された XSD ファイルです。

0 投票する
6 に答える
68672 参照

xml - xml ファイルから BOM 文字を削除するにはどうすればよいですか

xsl を使用して xml ファイルの出力を制御していますが、BOM 文字が追加されています。

0 投票する
4 に答える
9507 参照

algorithm - BOM(バイトオーダーマーク)が欠落している場合、どうすればエンコーディングを最もよく推測できますか?

私のプログラムは、さまざまなエンコーディングを使用するファイルを読み取る必要があります。それらは、ANSI、UTF-8、またはUTF-16(ビッグエンディアンまたはリトルエンディアン)の場合があります。

BOM(バイト順マーク)があれば問題ありません。ファイルがUTF-8かUTF-16BEかLEかはわかります。

BOMがない場合、ファイルはANSIであると想定したかったのです。しかし、私が扱っているファイルにはBOMがないことがよくあります。したがって、BOMがないということは、ファイルがANSI、UTF-8、UTF-16 BE、またはLEであることを意味する場合があります。

ファイルにBOMがない場合、ファイルの一部をスキャンして、エンコーディングのタイプを最も正確に推測するための最良の方法は何でしょうか。ファイルがANSIの場合は100%近く、UTF形式の場合は90年代後半になりたいです。

これを決定するための一般的なアルゴリズムの方法を探しています。しかし、私は実際にはUnicodeを知っていてTEncodingクラスを持つDelphi 2009を使用しているので、それに固有のものはボーナスになります。


答え:

ShreevatsaRの回答により、Googleで「ユニバーサルエンコーディング検出器デルファイ」を検索しました。この投稿が約45分間生きていた後、この投稿が1位に掲載されたことに驚きました。それは速いグーグルボッティングです!また、Stackoverflowがすぐに1位になるのも驚くべきことです。

Googleの2番目のエントリは、さまざまな言語のアルゴリズムをリストした文字エンコード検出に関するFredEakerのブログエントリでした。

そのページでDelphiについての言及を見つけたので、Delphiで記述されMozillaのi18nコンポーネントに基づいたSourceForgeの無料のオープンソースChsDet文字セット検出器に直接たどり着きました。

素晴らしい!答えてくれたすべての人に感謝します(すべて+1)、ShreevatsaRに感謝し、Stackoverflowにもう一度感謝します。1時間以内に私の答えを見つけるのを手伝ってくれました!

0 投票する
8 に答える
12525 参照

c# - 各ファイルの先頭に追加される文字

JS ファイルを 1 つのファイルに連結する HttpHandler クラスをダウンロードしましたが、連結する各ファイルの先頭に文字を追加し続けます。

これを引き起こしている原因についてのアイデアはありますか? 処理されたファイルがキャッシュに書き込まれると、キャッシュがそれを保存/レンダリングする方法である可能性がありますか?

任意の入力をいただければ幸いです。

0 投票する
3 に答える
23754 参照

ruby - ファイルの読み取り時に UTF-8 BOM でつまずくのを回避する方法

最近 Unicode BOM ヘッダー (U+FEFF) が追加されたデータ フィードを使用していますが、rake タスクが混乱しています。

最初の 3 バイトをスキップできfile.gets[3..-1]ますが、BOM が存在するかどうかにかかわらず、これを正しく処理できる Ruby でファイルを読み取るよりエレガントな方法はありますか?

0 投票する
5 に答える
5692 参照

java - Java には、さまざまなバイト オーダー マークを取得するメソッドがありますか?

エンコーディングの適切なバイト オーダー マークに対応するバイトを返す Java のユーティリティ メソッドまたは定数を探していますが、見つからないようです。ありますか?私は本当に次のようなことをしたいと思います:

CharEncodingApache Commons の由来はどこにありますか。