問題タブ [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.

0 投票する
3 に答える
688 参照

python - Pythonでユニコードを書く - この文字の何が問題なのですか

Python 2.7 では、Unicode として読み取り、utf-16-le として書き込みます。ほとんどの文字は正しく解釈されます。ただし、u'\u810a' のようにunichr(33034)としても知られるものもあります。次のコード コードは正しく記述されません。

ただし、これらのいずれかを上記で置き換えると、コードが機能します。

  1. unichr(33033) と unichr(33035) は正しく動作します。

  2. 'utf-8' エンコーディング (BOM、バイトオーダーマークなし)。

正しく書き込まれない文字を認識するにはどうすればよいですか? また、これらの文字または代替文字を出力する BOM を含む「utf-16-le」でエンコードされたファイルを書き込むにはどうすればよいですか?

0 投票する
3 に答える
3838 参照

php - PHP を使用して UTF-8 データを UTF-16LE ファイルに書き込むにはどうすればよいですか?

PHP で UTF-8 データの文字列を指定すると、それを UTF-16LE ファイルに変換して保存するにはどうすればよいですか (この特定のファイルはたまたま Indesign 向けであり、タグ付きテキスト ドキュメントとして配置されます)。

データ:

次のコードを使用していますが、役に立ちません。

0 投票する
2 に答える
2036 参照

vb.net - 文字列を UTF-16LE に変換してから Base64 に変換するにはどうすればよいですか?

私は VB.net の復習としてプログラムをまとめていますが、入力文字列を UTF-16LE に変換してから Base64 に変換するという、とにかく多くのことをしなければならないことを実行させたほうがよいと考えました。

さて、PHPでは、次のようにできます:

甘くてシンプル。

...しかし、vb.netでは、文字列を取得する方法がわかりません

Dim strInput = inputBox.Text

それを UTF-16LE に変換し (UTF-16LE である必要があります)、結果の文字列を Base64 に変換します。

ありがとうございました!

編集: Gserg と Steven のコードはどちらも同様にうまく機能し、テキストを変換する 2 つの方法を確認するのに役立ちます。1 つは指定可能なエンコーディングを使用し、もう 1 つは Unicode を使用します。現時点では、スティーブンの答えはより完全なので、受け入れます。ありがとうございました!

0 投票する
0 に答える
225 参照

java - Java FileOutputStream の行区切りが多すぎます

それで、私は改造用のゲーム用のツールを書いています。それはすべて正常に動作していますが、文字列をファイルに書き込む際に問題が発生しました。ゲームには UTF-16LE BOM でエンコードされたファイルが必要なので、私のコードは次のようになります。

fileContent は文字列の ArrayList であり、行区切り文字は含まれていません (これを複数回確認しました)。だから私の問題は、ファイルに書き込まれた行区切りが多すぎることです。例の代わりに:

私は次のようなものを得ます:

私が間違っていることは何ですか?

0 投票する
1 に答える
3107 参照

php - バイト オーダー マスク (BOM) を使用して PHP でファイルを UTF-16LE にエンコードする

Javascript によって POST でデータを受信する PHP を取得しました。これらのデータを CSV ファイルに書き込みたいと考えています。このファイルを UTF-16LE でエンコードする必要があります。

私が試しているのは:

1)

メモ帳++で開いた結果は、バイトオーダーマスクなしのUCS-2 LEです。

2)

結果は1)と同じです。

メモ帳++を使用してUTF-16LEで手動でエンコードすると、完璧な結果が得られました。

PHP で UTF-16 データにバイト オーダー マスクを追加するにはどうすればよいですか?

0 投票する
1 に答える
1711 参照

c - C言語でUTF-16LEをUTF-8に変換

標準の char * で UTF-16LE としてエンコードされた結果文字列 (私はかなり確信しています) と、文字列内のバイト数を返す関数を持つライブラリを使用しています。これらの文字列を UTF-8 に変換したいと思います。私はこの質問から解決策を試しました: Windows と Linux で UTF-16 を UTF-8 に変換します。C ではiconv を使用するように指示されていますが、その結果、入力バッファーと出力バッファーの両方が空になりました。私は何が欠けていますか?

私の入力および出力バッファは、次のように宣言および初期化されます。

次に、ライブラリ関数を呼び出して、rebuff にデータを入力します。デバッガーでバッファーを見ると、バッファー内のデータが表示されます。たとえば、データが「テスト」の場合、リバフの個々のインデックスを見ると、次のようになります。

私が信じているのは UTF-16LE (同じライブラリを使用する他のコードがこれを確認するように見える) であり、stringlen は 8 に等しくなりました。次に、次のコードを使用してそれを UTF-8 に変換しようとします。

その結果、outbuff と resbuff の両方が null 文字列になります。

ライブラリ関数が想定しているのは、stringlen を unsigned long ではなく int として宣言していることに注意してください。

編集: 以下の John Bollinger の回答に従って、コードを少し調整しましたが、結果は変わりませんでした。

編集 2: 最終的に、このコードからの出力は Python で使用されるため、見苦しいかもしれませんが、そこで文字列変換を実行するだけだと考えています。それだけで機能します。

0 投票する
1 に答える
873 参照

xml - UTF-16 (リトルエンディアン) XML で `xmllint` を使用する

私はバイナリファイルに取り組んでいます。このバイナリ ファイル内で、UTF-16 XML (リトルエンディアン) ファイルと思われるものを抽出できます。

データを抽出し、コンソール (debian/jessie amd64 を実行) からダンプしようとすると、次のようになります。

xmllint の man ページから助けになるものが見つからなかったので、ネットから UTF-16 リトル エンディアン ファイルをダウンロードしまし。最初の行 (エンコーディング) のみを保持するために、実際の XML データを削除しました。

これで、xmlling を適切に使用できるようになりました。

他にもっと簡単な解決策はありませんか?UTF-16 リトル エンディアン XML ファイルを読み取るのがこれほど複雑なのはなぜですか?