?
Solved

ISO8859_1 character set will not let me insert records containing Norwegian characters

Posted on 2003-03-20
15
Medium Priority
?
633 Views
Last Modified: 2013-12-09
I get the "cannot transliterate..." message

Seems like i cannot understand the relationship between database character sets and column character sets.

Any knowledge out there?

regards
classmate
0
Comment
Question by:classmate
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 6
  • 4
  • 3
  • +1
15 Comments
 
LVL 6

Expert Comment

by:BAlexandrov
ID: 8175986
All of the knowledge is in the fine documentation.
If you have a problem check to find a sollution there:
www.ibphoenix.com

If not luck -  ask here making full explanation what you do and what is wrong.

Bojidar Alexandrov
0
 
LVL 2

Author Comment

by:classmate
ID: 8180223
I had no luck unfortunately...

The initial problem is that sql queries will not "find" norwegian characters in the database when character set is NONE, though theese characters have been inserted.

Thus i try to create test databases seemingly compatible with desired characters, like ISO8859_1 and DOS865. Theese are default character sets in my test databases.

I also specify character set at column level, and I try with or without collation (ISO8859_1 : NO_NO and DOS865 : PDOX_NORDAN4, since i am converting an application from Paradox to Interbase).

When i do the following in ISQL :

create table test (
ID integer not null,
text varchar(30) character set ISO8859_1 collate NO_NO,
primary key (ID)
);

insert into test
values (1, 'ÆØÅæøå')
;

or by any means use a character set,
I get the message:

Arithmetic exception, numeric overflow, or string truncation
Cannot transliterate character between character sets
Statement: insert into test
values (1, 'ÆØÅæøå')

When i don't use character sets, this insert works OK, but select-statements containing non-english characters won't give a result in all cases and Upper() will not work properly.
0
 
LVL 2

Author Comment

by:classmate
ID: 8180289
FXEfxe  should have been something like
ØÅøå
0
Get MongoDB database support online, now!

At Percona’s web store you can order your MongoDB database support needs in minutes. No hassles, no fuss, just pick and click. Pay online with a credit card. Handle your MongoDB database support now!

 
LVL 2

Author Comment

by:classmate
ID: 8180297
Strange - i cannot make my special chars work in html either.... :-(
0
 
LVL 6

Expert Comment

by:BAlexandrov
ID: 8180441
About last comment - it is by design - they are encoded for security reasons
0
 
LVL 6

Expert Comment

by:BAlexandrov
ID: 8180460
About character sets. The one side is defining default characterset on database then when you create fields without saying what characterset to be - they will use the default.
Another approach is to supply to each char/varcahr field the characterset and collation.

And at last - you must specify what characterset you want to use when connect to that database - so you must supply this param to your conection. I have no idea what method of access you use but it will be parameter of database or connection component.
Something like: lc_ctype=ISO8859_1
must be added.

Bojidar Alexandrov
0
 
LVL 2

Author Comment

by:classmate
ID: 8180649
>>And at last - you must specify what characterset you want to use when connect to that database - so you must supply this param to your conection.

I use the IBConsole to connect in theese tests... Do you know how to set up this param here??

0
 
LVL 6

Accepted Solution

by:
BAlexandrov earned 800 total points
ID: 8181084
Hmm, I don't have IBConsole to check out... last few months I have moved to Firebird and for management tool - www.IBExpert.com

See at database connection settings - where you have registered your database.

Bojidar Alexandrov
0
 

Expert Comment

by:catalinm
ID: 8299780
use

create table test (
ID integer not null,
text varchar(30) character set NONE,
primary key (ID)
);

will be accept any character.
0
 
LVL 2

Author Comment

by:classmate
ID: 8332913
Hi catalinm

This is true but with this approach i have some trouble making my select queries work as they should using special (national) characters. This applies both to ordering issues and the ability to recognize a character in the WHERE clause.


classmate
0
 
LVL 10

Expert Comment

by:kacor
ID: 9795336
Hi classmate,

if you got the needed answer, please accept it by clicking on Accept in the header of the good answer. By this way you can express thanks for expert's support

with best regards

Janos
0
 
LVL 10

Expert Comment

by:kacor
ID: 9830692

No comment has been added lately, so it's time to clean up this TA.
I will leave a recommendation in the Cleanup topic area for this question:
       to accept BAlexandrov's answer
Please leave any comments here within the next seven days.

PLEASE DO NOT ACCEPT THIS COMMENT AS AN ANSWER!

kacor
EE Cleanup Volunteer
0
 
LVL 2

Author Comment

by:classmate
ID: 9838299
I found the solution by myself a while ago...

It's like this:
IBConsole does not let you change the character set for a connection once it is set up. Thus you need to be aware of this parameter when you set up the connection - which is not very obvious.

(This is not the same as giving the database a default character set when you create it)


classmate.
0
 
LVL 10

Expert Comment

by:kacor
ID: 9848718
Hi classmate,

thanks for your comment. If nobody places his new comment the new recommendation for this question is:
     
     PAQ and refund points

kacor
EE Cleanup Volunteer
0

Featured Post

Free Tool: Path Explorer

An intuitive utility to help find the CSS path to UI elements on a webpage. These paths are used frequently in a variety of front-end development and QA automation tasks.

One of a set of tools we're offering as a way of saying thank you for being a part of the community.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Microsoft Access is a place to store data within tables and represent this stored data using multiple database objects such as in form of macros, forms, reports, etc. After a MS Access database is created there is need to improve the performance and…
This article shows how to get a list of available printers for display in a drop-down list, and then to use the selected printer to print an Access report or a Word document filled with Access data, using different syntax as needed for working with …
In this video, Percona Solution Engineer Dimitri Vanoverbeke discusses why you want to use at least three nodes in a database cluster. To discuss how Percona Consulting can help with your design and architecture needs for your database and infras…
In this video, Percona Solution Engineer Rick Golba discuss how (and why) you implement high availability in a database environment. To discuss how Percona Consulting can help with your design and architecture needs for your database and infrastr…

770 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question