2

私はAndroid携帯から構築している組み込みシステムへのOBEXプッシュ転送を行っています。転送は私のdebianデスクトップでは機能しますが、組み込みシステムでは「obexd [741]:切断:Unicode変換に失敗しました:「UTF16BE」から「UTF8」へのコンバーターを開くことができませんでした」というエラーで失敗します

「iconv-l」と入力すると、DebianデスクトップにはUTF16BEが設定されていますが、組み込みシステムには設定されていないことがわかります。両方のシステムにUTF-8とUTF-16BEがありますが、組み込みシステムにはUTF8とUTF16BEがありません。ビルドシステムの特定のパッケージの古いバージョンで立ち往生しているので、新しいバージョンのglibをビルドする必要があると考えました。私はなんとか2.27.93をビルドできました。これは、Debianの安定版よりも新しいと思います。ビルド後、以前と同じ文字セットが一覧表示されます。また、Debianソースをダウンロードして、ダッシュが欠落している参照を探しましたが、まだ何も見つかりませんでした。

UTF-16BEとともにUTF16BE文字セットのサポートを取得するにはどうすればよいですか?彼らは本当に違うのですか?

4

1 に答える 1

2

UTF16BEとUTF-16BEは確かに互いに違いはありません。大文字と小文字および句読点が異なる文字エンコード名にはさまざまなバリエーションがあります。これは通常、名前の構文にさまざまな制限があるさまざまなコンテキストでの使用に名前が適合しているためです。

おそらく、次の/usr/lib/gconv/gconv-modulesようなエイリアスを含むことができるファイルがあります。

#       from                    to                      module          cost
alias   UTF16BE//               UTF-16BE//

組み込みシステムでそのファイルを手動で編集して、UTF16BEエイリアスを追加することをお勧めします。

于 2012-06-28T01:02:01.680 に答える