問題タブ [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 - php UTF-16LE に変換されたファイルが、最新の Office の更新後に Excel で開かない
私たちは何年にもわたって動作する PHP コード スニペットを持っています。シンプルな HTML テーブルを生成し、ユーザーはこれらを XLS ファイルとして保存できます。そしてそれをExcelで開きます。
この種のファイルを開くと、Excel が開き、まったく空の灰色の領域が表示されます。エラーもメッセージもありません。ただの空白。これは、Office 2010 が最新 (2016.07.14) の公式の Microsoft Office 更新プログラムを取得したマシンでのみ発生します!
上記の PHP スニペットは非常に簡単です。
BOM があり、$out にテーブルが含まれています。$out に単純なテーブルを配置すると、起動しません。例えば:
生成されたファイルをメモ帳++で開いて再度保存すると(何も変更されていない)、Excelが正しく開くので、非常に奇妙です。
問題はiconvのどこかにあると思います...それを削除したので、Excelに奇妙な文字が表示されます。
同じ状況の人はいますか?
私の問題についての助けや提案をいただければ幸いです。
utf-8 - UTF-16LE Elixir ビット文字列を Elixir 文字列に変換する
UTF-16LE でエンコードされた Elixir ビット文字列が与えられた場合:
これを読み取り可能な Elixir 文字列に変換するにはどうすればよいですか (「Devastator」と綴られています)。私が得た最も近い方法は、上記を Unicode コードポイント ( ) のリストに変換し、それらの先頭にエスケープ シーケンスを追加["0044", "0065", ...]
しようとすることですが、これは無効なシーケンスであるため、Elixir はエラーをスローします。\u
私はアイデアがありません。
php - PHPで適切なエンコーディングを検出するには? mb_detect_encoding が機能しない
文字列のエンコーディングを検出できるようにする必要がありますが、mb_detect_encoding が機能していません。
ファイル ( ) から文字列を取得しfile_get_contents
ましたが、問題を引き起こしたファイルが UTF-16 LE であることがわかりました。ただし、ドキュメントから、このエンコーディングの検出は不可能であることがわかります( mb_detect_order :「UTF-16、UTF-32、UCS2、および UCS4 の場合、エンコーディングの検出は常に失敗します。」)。
PHPで信頼できる方法で文字列のエンコーディングを取得するにはどうすればよいですか? 可能なエンコーディングはありますか?
これを解決しようとして数時間を失いましたが、適切なリソースが見つかりませんでした。これを自動化できるようにしたいので、ファイルのエンコーディングが変更された場合、プログラムがそれを処理できるようになります (別の Web サイトからファイルを取得しています)。
これを試してみましたが成功しませんでした.UTF-8が表示されます:
私もこれを試しました: