Character conversion error with special characters (umlauts)

"Stefan Axelsson" <[email protected]>
Newsgroups gmane.comp.db.tds.freetds
Message-ID <0C960D6D3EDE7941B1CF253A3297DA9C01D3067F@exchange01.lkl.ltkalmar.se>
Hello everyone,
 
After about a day of googling I've given up on tha path, so I'll bother you people instead.
 
Basically I've got an Ubuntu server with Apache, mod_perl and the usual stuff. I've written a simple webapp that communicates with an MSSQL 8 on a Win2K3 box. This is being done through the (I guess typical) method of Perl package (DBI) talking to unixODBC/FreeTDS that talks to the server.
 
Normal operation works great, no problems at all. But as soon as I showed my small app to my boss he broke it. I had totally forgotten to use non-english words when testing it (I'm a swede, but I code "in english" and thus I add test data in english too, old habit). So, adding words with åäö in an INSERT statement broke the application.
 
Checking logs gave me an error: [unixODBC][FreeTDS][SQL Server]Error converting client characters into server's character set. Some character(s) could not be converted.
 
Google helped me narrow it down, but I found no way to solve it. I've checked that iconv can translate it, it does so perfectly. I've tried some "common" special characters (like the ' ) and it works just fine. I've made sure I use nvarchar in the database (missed that at first, but changing it didn't help). My best guess atm is that the characters I want to use will "grow" during conversion (i.e. each byte becomes two bytes) between UTF-2 and UCS-2LE.
 
I've put the logfile for you to have a look at if that helps: http://pastebin.com/m3a90fc7b
 
Many thanks in advance,
Stefan Axelsson
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.