Unicode and FreeTDS

Microsoft servers using TDS 7.0 and above (anything since SQL Server 6.5) transmit their data in UCS-2 format (16-bit integers). Because most application linked to FreeTDS are not prepared to deal with UCS-2 data, FreeTDS can convert the data to something more acceptable, including ASCII. To do so, it employs an iconv library; one is available (and frequently employed) from GNU. The "to" format for iconv can be set in freetds.conf. FreeTDS will happily convert and convey your data in any single-byte format that iconv can provide. In practice, this normally means some form of ISO 8859-x or UTF-8.

At some future time, FreeTDS aims to support Unicode and other multi-byte character sets. It does not do so at the current time.

Sybase servers, by the way, transmit their data in the character set requested by the client at login time. The available character sets is fairly small, but includes UTF-8. While FreeTDS could convert Sybase data streams as easily as it does Microsoft data streams, to our knowledge no one is doing so. The Sybase server can perform the conversion itself, making FreeTDS's capability in this regard largely redundant and irrelevant.