cancel
Showing results for 
Search instead for 
Did you mean: 

UTFBIN is case sensitive on non-latin chars

former_member329524
Active Participant
0 Kudos

Hello, all

I have a version 16 DB with Cyrillic text in it.

When I try to search for rows with specific text in there using sql command like

select * from table1 where field1 like '%техт%'

the search is case-sensitive, even when the DB itself is not.

If I am searching for text with latin characters, the case of the letters is ignored, as it should be.

Dose anyone know how to fix it?

Thank you

Arcady

Accepted Solutions (1)

Accepted Solutions (1)

Former Member
0 Kudos

Hi Acardy,

What is your dbinfo output? I wasn't able to reproduce the behaviour. For example,

SELECT* FROM table1 WHERE field1 = 'Техт'

or

SELECT* FROM table1 WHERE field1 = 'техт'

both returned the same expected row that has the text 'техт'.

Jinwoo

former_member329524
Active Participant
0 Kudos

SQL Anywhere Information Utility Version 16.0.0.2234

Database  : C:\DB\Sybase16\Amarant.db

Log file  : C:\DB\Sybase16\Amarant.log

Log mirror: none

Page size : 4096

Encrypted : No

Strings padded with blanks for comparisons: No

CHAR collation sequence: UTF8BIN(CaseSensitivity=Ignore)

CHAR character set encoding: UTF-8

NCHAR collation sequence: UCA(CaseSensitivity=Ignore;AccentSensitivity=Ignore;PunctuationSensitivity=Primary)

NCHAR character set encoding: UTF-8

Database checksums enabled: Yes

Encrypted tables supported: No

Former Member
0 Kudos

Hi Acardy,

Are you querying against CHAR type columns? To meet your requirement, your CHAR collation sequence also needs to use UCA - it's using UTF8BIN which is by default.

As you probably know already, this requires your database to be rebuilt and your dbinit command need -z UCA to specify CHAR type also use UCA.

Regards,

Jinwoo

former_member329524
Active Participant
0 Kudos

Problem soled,

Thank you, Jinwoo

Answers (0)