In the my SQL database for an iPhone app, I have an integer number (up to 5 digits) in a long array of 2 characters To move the string using expanded ASCII character set. (In other words, I encode it using Base 150)
When exiting the database, sqlite3_column_text () returns the string as "const unsigned character *" I printf I can print this string correctly (it correctly displays more than 128 ASCII characters), but when I try to do it again and each string of the string is separated by itsTrying to convert the integer, the ASCII values on 128 fail, because they are multibyte and it is only getting a byte (I think)
example:
I call this string an encoded string in which: svà ??)
unsigned char c = encoded string [0]; Unsigned char d = encoded string [2]; Printf ("% c", c); // Output "s" printf ("% c", d); // Output "\ 303" printf ("% s", encoded string); // output "svà ??)" I have also tried wchar_t with the same result I have worked to use NSStrings, but it is very slow, and I am doing it several thousand times (according to NSMKranger Profiler, the culprit is), so I can get it as fast as possible, so c.
What's the trick to get a single multibyte / expanded ASCII character out of a string? Instead of using a TEXT column, I type a BLOB column itemprop = "text"> I recommend using whatever size in the data you want to use (probably 16-bit unsigned)
You can use sqlite_column_bytes () to define the size of the column, so that they can allow the use of variable-length columns. It will avoid the complexity you are currently facing.
No comments:
Post a Comment