問題タブ [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.
xml - PowershellでBOMを使用してXMLファイルを読み取る
Powershellは、ユニコードBOMを使用してxmlファイルをバーフィングしているようです-コード:
「ルートレベルのデータが無効です」と爆発します。
ファイルの内容をいじることなくこれを行う簡単な方法はありますか?
java - InputStream で BOM を処理する方法
上記の方法を使用して、SFTP サーバーにあるファイルのすべての行を取得します。このget(path)メソッドは、ファイルの内容をInputStream. 私の特定のケースでは、ファイルは多数のグループ化された注文を含む CSV です。ある行が注文なのか新しいグループのヘッダーなのかを確認するには、line.startsWith("HDR").
私の問題は、コードが最初のヘッダー行をスキップしていることに突然気付いたことです。デバッガーを実行すると、コレクションの最初の行で、HDRパーツの前に奇妙な文字が含まれていることがわかりました。UTF-8 BOM か何かだと思います。それで、どうすればこれに対処できますか?UTF-8 ファイルを正しく読み込むにはどうすればよいですか? 実際に UTF-8 ファイルかどうかを確認する方法はありますか?
更新: Java でバイト オーダー マークがファイルの読み取りを台無しにする で解決策が見つかったので、これを閉じます :)
text - BOMはOS(Win、Nix。。。)またはエンコーディング標準(UTF-8、ASCII。。。)の概念ですか?
BOMはWindowsの特性ですか、それとも何らかのエンコード方法の特性ですか?
私はWindows7とLinuxでコードを書いています。コードのエンコード方法を選択するオプションがあります。頭痛の種なしに両方のOSを切り替えられるようにしたいと思います。ASCIIを使用して必要なすべての文字にアクセスできると確信しています。OS間で転送する場合、他にどのような問題を考慮する必要がありますか。どのテキストエンコーディングが標準に依存しないか(ASCII対Unicode対UT-8)、OSに依存します(Linux対Windows)。
javascript - Is there any case in which removing a BOM from a Js file created in Visual Studio 2008 will cause problems?
I need to automate tests of our javascript files using Rhino and Jasmine. We have a lot of js files created in visual studio, and thus contain a byte order mark...
Rhino doesn't like this and moans about the BOM...
Is there any case, no matter how fringe, that will cause the javascript to malfunction if I just strip out the BOM from the Javascript files?
git - git を使用して変更を UTF8 BOM にチェックインする
以前に BOM を削除せずに、誤って Windows から utf8 でエンコードされたテキスト ファイルをチェックインしてしまいました。今、私はそれを新しいバージョンで削除し、この変更を再度チェックインしようとしました。git は BOM バイトの変更を無視しているようです。git でファイルをそのままチェックインできるようにする設定はありますか? (行末に関しても同様の問題があることは知っています-そして、これには設定があります...)
php - CakePHP「ヘッダー情報を変更できません」問題は空白ではありません
エラーは次のとおりです。
のコードは次のposts_controller.phpとおりです。
111 行目は次のとおりです。
echo "\n<pre class=\"cake-debug\">\n";
コアケーキファイル
debug_print_backtrace()の出力: http://pastebin.com/fBFrkYsPbasics.php
編集したすべてのファイルを確認しました (ベイクしたばかりのファイルとは対照的に)。php ブラケット () の外側に空白はありません。私はこのスクリプトを使用しました: BOF または EOF で空白または WS を持つすべてのファイルを検索します。
私のテキスト エディタは UTF-8 に設定されています。基本的に、25行目をコメントアウトすると問題は解決します(上記のコメントでマークされています)。しかし、リダイレクトを使用できるはずです...誰かが私を正しい方向に向けることができますか?
編集: 上記の 111 に行を追加。編集 2: debug_print_backtrace() の出力を追加
.net - .NET Webサービスにバイトオーダーマークが突然表示されるのはなぜですか?
私はASMXWebサービスを作成しました。これは、何年にもわたって本番環境で実行されています。今日、応答を解析しようとすると、突然Javaクライアントがエラーをスローします。XML宣言の前に表示されるBOM(バイト順マーク)まで追跡しました。
コードは1年以上変更されていません。上記のHTTPヘッダーからわかるように、WebサービスはIISのMOSS 2007サイトで実行されますが、独自のweb.configがあります。
私たちが知る限り、サーバーの構成に大きな変更はありませんが、それは何かであったに違いありません。これを引き起こした可能性のあるアイデアはありますか?
変更を追跡して元に戻すことができない場合、次の質問は、コードでこれを修正できますか?
これは、次のような.asmxファイルを含むバニラASMXWebサービスです。
および.asmx.csファイルは次のようになります。
BOMの問題について説明している投稿を見たことがありますが、XMLドキュメントを返すだけで、フレームワークがクライアントへのストリーミングを処理しているため、何かできるかどうかわかりません。
更新: BOMの問題がステージサーバーに存在しないことがわかりました。別の手がかりになる可能性があるのは、soapUIがprodからの生の応答を表示する場合、BOMがあり、SOAP XMLはフォーマットされているように見えます(複数行でインデントされています)。ステージを見ると、BOMはなく、応答全体が1行になっています。そのため、他にもBOMが追加されました。
iphone - BOMをファイルで保存
バイトオーダーマーカー(BOM)をファイルと一緒に保存する方法を教えてもらえますか?たとえば、次のようにテキストファイルを保存します。
BOMについての私の理解は次のとおりです。
BOM文字は、Unicode文字セットの「ゼロ幅ノーブレークスペース」文字U+FEFFです。
ユーザーがテキストをRTFファイルに保存できるiPhoneアプリケーションがあります。NSUTF8StringEncodingを使用すると、ユーザーが日本語や中国語などの2バイト文字を使用していない限り、すべて正常に機能します。簡単な答えは、BOMが定義されている場合にのみMicrosoft WordがUTF-16ファイルを自動的に開くことができることを除いて、最近のRTF仕様で許可されているNSUTF16StringEncodingを使用してファイルを保存することです。
一般的なBOMを設定できれば、それが何であるかを事前に知る方法がないため、ユーザーの文字セットを識別する必要がないことを願っています。ただし、2バイト文字のRTFファイルを開くことはできます。
提案や洞察をありがとう。
.net - BaseStreamにBOMがある場合は、StreamReaderをBeginningに戻します
特に、基になるBaseStreamがBOMで始まる場合は、StreamReaderをリセットして開始するための確実な方法を探していますが、BOMが存在しない場合にも機能する必要があります。ストリームの先頭から読み取る新しいStreamReaderを作成することもできます。
元のStreamReaderは、任意のエンコーディングで、detectEncodingFromByteOrderMarksをtrueまたはfalseに設定して作成できます。また、resetを呼び出す前に、読み取りが行われたかどうかがわかります。
ストリームはランダムテキストにすることができ、バイト0xef、0xbb、0xbfで始まるファイルは、BOMを持つファイル、または有効な文字シーケンスで始まるファイル(たとえば、ISO-8859-1エンコーディングが使用されている場合は)にすることができます。 StreamReaderの作成時に使用されたパラメーターについて。
他の解決策を見てきましたが、BaseStreamがBOMで始まると正しく機能しません。StreamReaderは、すでにBOMを検出していることを記憶しており、読み取りが実行されたときに返される最初の文字は特殊なBOM文字です。
また、新しいStreamReaderを作成することはできますが、元のStreamReaderがdetectEncodingFromByteOrderMarksをtrueに設定して作成したのか、falseに設定して作成したのかわかりません。
これは私が最初に試したことです:
そして、それらは最も重要な方法です。
最後に、3つのテストすべてに合格する解決策(自分の回答を参照)を見つけましたが、よりエレガントまたは高速な解決策が可能かどうかを確認したいと思います。
ruby - rubyを使用してID3タグにUnicodeを追加するにはどうすればよいですか?
MP3のID3タグ(v2.3)にUnicodeタイトルを追加しようとしています。残念ながら、私はそれを行う方法を理解することはできません。id3.orgのid3v2ページによると、Unicode文字列はUnicodeBOMで始まる必要があります。
私は現在id3v2を試していますが、タグはぎこちないものとして保存されます。
ルビーでやりたいのですが、Linuxユーティリティでもかまいません。
更新:id3lib-rubygem を使用して解決策を見つけました。以下にリストされています。