Reinier Olislagers schrieb:
On 15-7-2013 18:43, Hans-Peter Diettrich wrote:
Reinier Olislagers schrieb:
On 14-7-2013 8:00, Daniel Simoes de Ameida wrote:
Workaround: make your field size as large as the maximum number of UTF8
bytes you expect.
Another workaround: use the appropriate codepage for storing strings in
the database, so that all characters are single bytes. With the new
(encoded) AnsiStrings this should be quite easy (automatic conversion).


Wouldn't you run into trouble if you want to use a character outside the
codepage? Presumably OP has enabled UTF8 on the db instead of some other
codepage on purpose.

Then the choice of byte sized characters in the DB field is inappropriate at all. I wonder how the DB or SQL would sort or compare (LIKE) such strings?

When the DB doesn't support better string types, like true UTF-8 or UTF-16 strings, your suggestion is the next best, i.e. abuse fixed size STRINGs for storing UTF-8 encoded values, and stay away from any string handling in the DB. This means that e.g. a character limit must be handled in application code, with either a sufficiently large fixed or a variable field size in the DB.

DoDi


--
_______________________________________________
Lazarus mailing list
Lazarus@lists.lazarus.freepascal.org
http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus

Reply via email to