問題タブ [utf-16le]
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.
perl - 自分で BOM を削除する必要がありますか?
UTF-16LE でエンコードされた CSV ファイルを使用しています。Perl モジュール Text::CSV_XS を使用してデータを処理します。
Data::Dumper を使用して最初の行を印刷すると、出力に BOM が表示されます。
perldocによると、内容が UTF-16LE であることを明示的に述べているため、BOM は保持されます。書き込み:encoding(UTF-16)
のみの場合、BOM は削除されます。
しかし、必要なエンコーディングを明示的に示すために、コードに保持したいと思います。これは良いことだと思います。そうでない場合は、教えてください。
しかし、次に、たとえば次のように記述して、 BOM を処理する必要があります。$header_row->[0] =~ s/^\x{FEFF}//;
これは正常ですか?utf-16 でエンコードされたファイルを操作する場合、文字列の BOM を気にする必要がありますか? それとも私は何か間違っていますか?
java - csv の文字エンコーディング
Oracle DB テーブルからデータを選択し、そのデータを csv ファイルとプレーン パイプで区切られたテキスト ファイルにダンプする必要があります。ユーザーが生成されたcsv /テキストファイルを表示できるように、アプリケーションでユーザーにリンクを提供します。
多くの解析が含まれていたため、Unix シェル スクリプトを作成し、Struts/J2ee アプリケーションから呼び出しています。
以前は、生成されたファイルで中国語とローマ字が失われ、生成されたファイルには us-ascii charset (使用してチェックされた-> file -i) が含まれていました。後で使用する NLS_LANG=AMERICAN_AMERICA.AL32UTF8
と、utf-8 形式のファイルが得られました。
それでも文字が意味不明だったので、iconv コマンドを試して、utf-8 ファイルを utf-16le charset に変換しました。
iconv -f utf-8 -t utf-16le $recordFile > $tempFile
これは、生成されたテキスト ファイルに対して正常に機能します。しかし、CSV では、中国語とローマ字はまだ正しくありません。この csv ファイルをメモ帳で開き、キーボードから Enter キーを押して改行を入力したら、保存します。MS-Excel で開くと、中国語とローマ字を含むすべての文字が正常に表示されますが、テキストは列ではなく行ごとに 1 行になりました。
何が起こっているのかわからない。
Java コード
詳細を見逃した場合はお知らせください。これを通過するために時間を割いてくれてありがとう。
python - utf-16-le BOM csv ファイル
Playstore (stats など) からいくつかの CSV ファイルをダウンロードしており、Python で処理したいと考えています。
ご覧のとおり、utf-16le です。
一部のファイルで機能し、他のファイルでは機能しないpython 2.7のコードがあります。
これは、次の時点まで機能します。
これを行う適切な方法は何ですか?「再エンコード」が cvs モジュールなどを使用するのを見たことがありますが、csv モジュールはそれ自体でエンコーディングを処理しないため、データベースにダンプするだけではやり過ぎのようです。
encoding - なぜUTF-16LEでGroovyファイルを書き込むとBOM文字が生成されるのですか?
以下の 1 行目と 2 行目ではファイルに BOM が生成されず、3 行目では BOM が生成される理由がわかりましたか? UTF-16LE が正しいエンコーディング名であり、そのエンコーディングはファイルの先頭に BOM を自動的に作成しないと思いました。
別のサンプル
版画
そしてJavaで
版画
Java では BOM は作成されませんが、Groovy では BOM が作成されます。
macos - UTF-16LEのtxtファイルの最初の行としてファイル名をバッチ書き込みするOSX perl
ここで、テキスト ファイルのファイル名をファイルの最初の行に書き込む、非常に便利な perl を見つけました。OS X Yosemite のターミナルからこれを実行しています。
いくつかの変更により、特定の問題が解決したと思いましたが、ピックアップしているファイルはUTF-16LEであり、このコマンドがUTF-8で記述されており、出力が本当に混乱していることを発見しました(テキストは目に見えて正しいです)ただし、Excel、ファイルメーカーなどの計算では認識されません)。
何度か試行した後、このスクリプトでファイル名を UTF-16LE でファイルの先頭に書き込む方法について助けが必要です。(注:ファイルをUTF-8にバッチ変換してから実行するという回避策がありますが、このワークフローを1つのステップで実行することをお勧めします)。
ruby - Ruby UTF-16エンコーディングだと思います
Open3を使用してシェルコマンド(UTF-16を出力することが知られている)を呼び出すWindows上で実行されているRubyプログラムがあります。
UTF_16LE への force_encoding が機能せず、例外がスローされた場合、単純にバイトを保存し、JSON 文字列としてエンコードし、UTF_8 としてエンコードします。
まあ....例外がスローされ、レスキュー句でバイトの出力配列をキャッチしました。次のようになります。
何らかの形式のテキストに戻すにはどうすればよいですか。例えば私がする場合:
プログラムで [100, 111, 103] を「犬」または [224, 164, 149, 224, 165, 129, 224, 164, 164, 224, 165, 141, 224, 164, 176, 224, 164, 190] 戻る "カケラ" ? 私の出力バイト配列が何を意味するのかを理解する方法はありますか?
- - - - - - - - - - - - - アップデート - - - - - - - - - - - - ---
少し掘り下げましたが、「デコード」が問題ではないため、しばらく時間がかかりました。ただし、変数messageに保持した配列で次のことを行いました。
エラーメッセージがUTF-16LEではないという点で、私の問題は解決しました。
しかし、これを実行すると、次の結果が得られました。
この奇妙に見える文字列またはバイト シーケンスをより意味のある "कुत्रा" に変換するにはどうすればよいですか?
r - UTF-16LE エンコーディングで csv を読み取る高速な方法
UTF-16LE エンコーディングの .csv ファイルを扱っています。このメソッドはファイルを読み取るために機能しますが、read.csv は read_csv に比べて非常に低速です。
残念ながら、 read_csv を機能させることはできません。空の行しか取得できず、関数でエンコーディングを指定する方法さえ見つかりません。
私は自分のデータを共有することはできませんが、誰かがこのエンコーディングを扱っていれば、助けていただければ幸いです.
endianness - ファイルを UTF16 LE から UTF16 BE に変換する
「UTF16-LE から UTF16-BE にファイルを変換すると、後でファイルが小さくなるか大きくなりますか?」
バイトの順序が違うだけだと思ったのですが、なぜファイルのサイズを変更する必要があるのか わかりませんか?