Question

I am working doing OBEX push transfers to an embedded system we are building from an Android phone. The transfers work on my debian desktop but fail on the embedded system with the error "obexd[741]: disconnected: Unicode conversion failed: Could not open converter from 'UTF16BE' to 'UTF8' "

Now when I type "iconv -l" I can see that I have the UTF16BE set on my debian desktop but not on my embedded system. On both systems I have UTF-8 and UTF-16BE but not UTF8 and UTF16BE on the embedded system. I am stuck with some old versions of certain packages from my build system, so I figured I just needed to build a newer version of glib. I managed to build 2.27.93, which I think is newer than the debian stable. After the build it list the same charsets as before. I also downloaded the debian source and looked for references missing the dash but haven't found anything yet.

How do I get support for the UTF16BE charset along with UTF-16BE? Are they really different?

Était-ce utile?

La solution

UTF16BE and UTF-16BE are certainly not different from one another. There exist all sorts of variations of character encoding names with different case and punctuation, usually because the names are adapted for use in various contexts that have different limitations on the syntax of names.

You probably have a file /usr/lib/gconv/gconv-modules which can contain aliases like this:

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

I would suggest just manually editing that file on your embedded system to add the UTF16BE alias.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top