storesafe/cordova-sqlite-evcore-extbuild-free

[UTF-8] Charset problems [multi-byte UTF-8 characters]

Closed this issue · 8 comments

I am facing the problem descrived here.
In my device xperia Z5 is working ok but in the emulator (or any Intel processor device) I see the special chars retrieved from sqlite like this ?ffffffc3??ffffffb3? for ó, etc.

As brunocollaco suggests on the above linked thread I think this is a bug with evcore-extbuild-free plugin on intel processors.

Any ideas?

Thank you.

I recently switched from cordova-sqlite-ext to cordova-sqlite-evcore-extbuild-free. I can confirm the same problem. This problem only occurs with Android, not with iOS.

Yes mmp-schmitt this problem occurs with Androids working on a Intel processor device and there are a lot of them.
And also occurs with not-so-special chars ?ffffffe2??ffffff82? is what I got from the € symbol.

The problem occurs with all UTF-8 characters beyond code 7F. When a character requires 2 bytes or more, the program fails. The Euro character has the URF-8 Hex code: e2 82 ac.
Obviously there is a character misinterpretation between the x86 C library libsqlc-evcore-native-driver.so and the Java parts.

Possible solution contributed in storesafe/android-sqlite-evcore-ndk-driver-free#2

Planning to publish a similar solution in November 2017.

From storesafe/android-sqlite-evcore-ndk-driver-free#2 (comment):

I just saw the issue in case of 2-octet and 3-octet UTF-8 characters on Android x86_64 emulator, hoping to make this fix in the near future [...]

P.S. I also see this on Intel x86 (32-bit) and x86_64 emulators.

Some related issues:

  • #7 - crash in case of emojis and other 4-byte UTF-8 characters
  • #25 - issue with multi-byte UTF-8 character such as accented characters or Euro symbol in database name
  • #26 - crash in case of 4-byte UTF-8 character in database file name

I expect to fix this issue in the next major release (related to next major release of cordova-sqlite-storage discussed in storesafe/cordova-sqlite-storage#687).