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