問題タブ [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.
php - BOM 付きの UTF-16LE エンコーディング
私はさまざまな特殊文字を使用するプロジェクトに取り組んでいます。現在、特にアラビア語の文字に取り組んでおり、PHP からエクスポートするときに、角括弧として表示されるコードをそのまま使用して、Excel で正しく表示するのに苦労しています。エクスポートされたファイルで。
私はこれを達成するためにさまざまな方法を試しましたが、いくつかは他の方法よりも優れた結果をもたらしましたが、最終的にはすべての試みに何らかの問題があります.
いくつかの調査を行ったところ、BOM を使用した UTF-16LE としてのエンコードがこれを機能させる最も可能性の高い方法であることがわかりましたが、これまでのところ、これを実装する最善の方法を見つけることができません。
私が試したこと
以下のコードで、コードの開始時に設定した 4 つの変数に応じてコードが取ることができるいくつかのルートがあることがわかります。これらのトグルを入れ始めたので、コードを作成しなくてもさまざまな方法を試すことができます。読めない。
現時点では、コードにある設定で CSV をエクスポートできますが、アラビア文字が四角いボックスとして表示されます。VS Code で CSV を表示すると、エンコーディング タイプを認識できないことがわかります。デフォルトでUTF-8になり、BOMで正常にエクスポートされたことも通知されます。
UTF-16LE への切り替えは簡単なようで、実際に成功しましたが、BOM としてエクスポートしてから、UTF-16LE に戻す方法を見つけることができませんでした。最終的に、私はあまりにも長い間コードを見つめてきたと思います。修正は非常に迅速になると思いますが、現時点ではそれを見ることができません。SO の質問で問題を説明することで、問題が何であるかを理解できると思いますが、これまでのところ何もありません。
array_walk
を使用してカンマ区切り、タブ区切りでエクスポートしようとしましiconv
たが、値を UTF-16LE に変換するために、エクスポートの開始時におよびをmb_convert_encode
使用して、ヘッダーに Content-Encoding と Content-Type を設定しようとしましたBOM に変換します (以下の現在のバージョンが最適に動作しているようです)。\xEF\xBB\xBF
chr(255) . chr(254)
また、私のコードで両方を使用したことがわかり、どちらfwrite
がfputcsv
最もうまく機能fputcsv
しているか、現時点で最もうまく機能しているように見えるかを確認できます。
任意のポインタをいただければ幸いです - 説明が必要な場合は、コメントで質問してください。
これまでの私のコード
dart - How to encode to UTF16 Little Endian in Dart?
I am attempting to manipulate some system variables used by a program using Dart. I have encountered the problem of dart's utf package being discontinued, and I have not found any way to encode to UTF 16 Little Endian for a File.write. Is there a library that can do a byte to UTF 16 LE conversion in Dart? I would use UTF anyway, but it is not null safe. I may end up trying to use the utf package source code, but I am checking here to see if there is a native (or pub) implementation I have missed, as I am new to the world of UTF and byte conversions.
My goal:
I do not need to write a BOM.
amazon-s3 - AWS S3 のファイルの UTF 16 エンコーディングを UTF 8 エンコーディングに変更する
私の主な目標は、AWS Glue を使用して、S3 に保存されているファイルを RDS のデータベースに移動させることです。私の現在の問題は、これらのファイルを取得する形式には UTF 16 LE エンコーディングがあり、AWS Glue は UTF 8 エンコーディングのテキスト ファイルのみを処理することです。( https://docs.aws.amazon.com/glue/latest/dg/glue-dg.pdf、5 ページの脚注) を参照してください。私のローカル マシンでは、Python は次の方法でエンコーディングを簡単に変更できます。
私はこれをGlueジョブに実装しようとしました:
Glue でエラーは発生していませんが、ファイルのテキスト エンコーディングが変更されていません。しかし、おそらくより賢明なサービスである Lambda で同様のことを試みると、s3 にバケット属性がないというエラーが表示されます。便宜上、この ETL 作業はすべて接着剤で保持することをお勧めします。
私は AWS に非常に慣れていないので、アドバイスを歓迎します。