Subject | Transliteration problem |
---|---|
Author | Geoff Worboys |
Post date | 2014-12-21T09:12:31Z |
Hi all,
I'm hoping someone can help me understand this:
Firebird v2.5.3, Windows (XP or 7(, tried on IBO and
FlameRobin, on a database created with default character
set WIN1252 (also used as connection character set).
This:
SELECT Upper(_win1252 'ƒ') FROM RDB$DATABASE
(Where 'ƒ' is decimal 131 / 0x83)
Gives me error 335544321
arithmetic exception, numeric overflow, or string truncation
Cannot transliterate character between character sets.
Experimenting I get:
SELECT Upper(_win1252 x'80') FROM RDB$DATABASE -- works
SELECT Upper(_win1252 x'81') FROM RDB$DATABASE -- works
SELECT Upper(_win1252 x'82') FROM RDB$DATABASE -- works
SELECT Upper(_win1252 x'83') FROM RDB$DATABASE -- FAILS
SELECT Upper(_win1252 x'84') FROM RDB$DATABASE -- works
I do not understand. x83 is (according to my research) a valid
international character in 1252 - and anyway, 0x81 doesn't
give the error and it isn't a valid character.
This has come about because I had some searches failing in an
existing database. Many users have cut-n-paste from emails,
so some blob fields have ended with all sorts of stuff that
Firebird happily accepted and saved - but now won't let me
search with Upper.
--
Geoff Worboys
Telesis Computing Pty Ltd
I'm hoping someone can help me understand this:
Firebird v2.5.3, Windows (XP or 7(, tried on IBO and
FlameRobin, on a database created with default character
set WIN1252 (also used as connection character set).
This:
SELECT Upper(_win1252 'ƒ') FROM RDB$DATABASE
(Where 'ƒ' is decimal 131 / 0x83)
Gives me error 335544321
arithmetic exception, numeric overflow, or string truncation
Cannot transliterate character between character sets.
Experimenting I get:
SELECT Upper(_win1252 x'80') FROM RDB$DATABASE -- works
SELECT Upper(_win1252 x'81') FROM RDB$DATABASE -- works
SELECT Upper(_win1252 x'82') FROM RDB$DATABASE -- works
SELECT Upper(_win1252 x'83') FROM RDB$DATABASE -- FAILS
SELECT Upper(_win1252 x'84') FROM RDB$DATABASE -- works
I do not understand. x83 is (according to my research) a valid
international character in 1252 - and anyway, 0x81 doesn't
give the error and it isn't a valid character.
This has come about because I had some searches failing in an
existing database. Many users have cut-n-paste from emails,
so some blob fields have ended with all sorts of stuff that
Firebird happily accepted and saved - but now won't let me
search with Upper.
--
Geoff Worboys
Telesis Computing Pty Ltd