この記事は機械翻訳のミラー記事です。元の記事にジャンプするにはこちらをクリックしてください。
建築家
建築家
リスト
放送
茶屋
インテリジェントAI会話
.NETキャリア&テクニカルカレッジ
ちっちゃいなクズブログ
この版
利用者
Architect_Programmer_Code農業ネットワーク
»
建築家
›
プログラミング
›
ジャワ
›
JavaでUnicodeファイル(UTF-8など)を読む際のBOMプレフィックスの問題...
眺める:
14853
|
答える:
0
[出典]
JavaでUnicodeファイル(UTF-8など)を読み取る際に発生したBOMプレフィックスの問題
[リンクをコピー]
クズども
掲載地 2019/01/14 16:26:17
|
|
|
JavaでUnicodeファイル(UTF-8など)を読む際に遭遇するBOMの最初の文字の問題と、それらの扱い方について
Windowsでテキストエディタで作成されたテキストファイルは、UTF-8などのUnicode形式で保存する場合、ファイルのヘッダーにBOM ID(最初の文字)が追加されます。
この識別はJavaでファイルを読み取っても削除されず、String.trim()も削除できません。 readLine() を使って最初の行を読み、それを文字列に保存すると、文字列の長さは見えるより1大きくなり、最初の文字はこのBOMになります。
これは問題を引き起こすことがあります。例えばiniファイルを読むときに、最初の行が「[」で始まるかどうかを見分けたい場合、正しく判断できないことがあります。
幸いなことに、JavaがUnicodeファイルを読み取るとBOMは一様に「\uFEFF」に変わるので、手動で解くことができます(判断後、substring()またはreplace()を使ってこのBOMを削除してください):
ログインが見えます。
しかし、
このアプローチは完璧ではありません
生成されたjarファイルがWindows上で動作している場合でも、問題は残っています。 最終的な回避策は、apache commons ioが提供するBOMInputStreamを使うことです:
ログインが見えます。
ログインが見えます。
BOMとは何ですか?
BOM = バイト順マーク
BOMはUnicode仕様でバイトの順序をマークする推奨される方法です。 例えばUTF-16の場合、受信側がFEFFのBOMを受け取ると、バイトストリームがビッグエンディアンであることを示します。 FFFEが受信された場合、バイトストリームがリトルエンディアンであることを示します。
UTF-8はバイト順を示すBOMを必要としませんが、「私はUTF-8エンコードされています」と表示するために使用できます。 BOMのUTF-8エンコーディングはEF BB BFです(UltraEditでテキストを開き、16進数に切り替えると確認できます)。 つまり、受信側がEF BB BFで始まるバイトストリームを受け取った場合、それはUTF-8エンコーディングであることがわかります。
先の:
ジャクソン共通誤差解
次に:
バーコーディングソフトウェアのバーテンダー!
関連記事
•
ブロックチェーンBase58、Base58Check、Bech32、Bech32mコーディングの詳細な説明
•
Javaワークフロー:Activiti、Flowable、Camunda と
•
toPlainString, toEngineeringString, toString for BigDecimal in Java
•
VS 2022パッケージ管理コンソール 中国語の乱雑なソリューション
•
Windows Mavenの設定チュートリアルをダウンロードしてインストールしてください
•
.NETのすべてのバージョンでBase64のデコードエラーが存在します
•
Base64エンコード文字列構成(Base64に含まれる文字)
•
.NET/C# RSA PEM フォーマットの暗号化および復号化
•
ASCIIコード、ISO8859-1、Unicode、GBK、UTF-8の違い
•
JavaScriptでのURLとパラメータのエンコード
閲覧したセクション
リソースの共有
.Net/C#
レジャー灌漑
ニシキヘビ
免責事項:
Code Farmer Networkが発行するすべてのソフトウェア、プログラミング資料、記事は学習および研究目的のみを目的としています。 上記の内容は商業的または違法な目的で使用されてはならず、そうでなければ利用者はすべての結果を負うことになります。 このサイトの情報はインターネットからのものであり、著作権紛争はこのサイトとは関係ありません。 ダウンロード後24時間以内に上記の内容を完全にパソコンから削除してください。 もしこのプログラムを気に入ったら、正規のソフトウェアを支持し、登録を購入し、より良い本物のサービスを受けてください。 もし侵害があれば、メールでご連絡ください。
Mail To:help@itsvse.com