Re: Character conversion errorwithspecialcharacters(umlauts)

"Stefan Axelsson" <[email protected]>
Newsgroups gmane.comp.db.tds.freetds
Message-ID <0C960D6D3EDE7941B1CF253A3297DA9C01D30685@exchange01.lkl.ltkalmar.se>
 

>-----Ursprungligt meddelande-----
>Från: [email protected] [mailto:[email protected]] För James K. Lowden
>Skickat: den 21 juli 2008 16:45
>Till: FreeTDS Development Group
>Ämne: Re: [freetds] Character conversion errorwithspecialcharacters(umlauts)
>
>Stefan Axelsson wrote:
>> 
>> Just tested something else, as I realized I hadn't. isql lets me 
>> update the records with åäö in them just fine. Checking on the server 
>> and the updated data is as it should be. Getting the records back 
>> through isql (SELECT * FROM tablename) works fine. Using my Perl-script returns ?
>> Where the åäö should be.
>> 
>> Unfortunately I'm still rather confused about what talks to what, and 
>> how. And I'm even more in the dark when it comes to how to track what 
>> happens step-by-step. All I've gotten to work so far is the logging I 
>> can enable in odbcinst.ini-file. So if you, or anyone else, have any 
>> ideas, hints, tricks...do tell. I'd so prefere to solve this and not 
>> just install some other distro/port to Windows.
>
>Ledsen att säga, det är inte enkelt.  :-(
>
>The server announces its encoding during the login sequence.  For non-UCS2 columns, the encoding is set by server or database defaults, or (in SQL Server >200[05]) by column.  sp_helpsort should show you yours (although I think you know yours already). 
>
>The client's encoding is determined first by the locale.  It can be overridden in freetds.conf.  To use the override feature for an ODBC connection, you >must cause the ODBC driver to read freetds.conf.  To do that, use the "Servername" (not "server") property in the DSN entry, naming the section in 
>freetds.conf where the encoding ("client charset") is specified.  (I think you could set the client charset in the "[global]"
>section, instead, if you prefer.)  
>
>As long as both encodings can represent all the characters you need, you're OK.  It is not necessary to use USC-2 on the server.  It is necessary only 
>that the intersection of the two encodings satisfies your requirements. 
>
>Now, who's the "client" here?  You're running a webserver producing HTML, normally encoded as UTF-8.  And you seem to want UTF-8.  So I think you want 
>either to set your locale to UTF-8 or use and ODBC-Combined configuration to take advantage of the freetds.conf override feature.  
>
>HTH.  I can provide more if you need it.   Ta det lungt.  
>
>--jkl

Det var enkelt, tackar. :)

And for the non-swedes (or atleast, swedish speaking). It worked like a charm. I just changed "server" to "servername", restarted Apache (was quite sure that wasn't realy an issue, but better safe than sorry) and it worked flawlessly right away. Sure, had to add a HTTP tag to use UTF-8 for the page in the browser, but that was just one line in one includefile.

So thanks for the help, my boss seems much happier now too. :) Guess I owe you a beer, a coffee or whatever if we would ever run into eachother in RL.

Many thanks!
Stefan
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.