- #Actual postgres odbc excel 2016 utf 8 issues drivers
- #Actual postgres odbc excel 2016 utf 8 issues driver
- #Actual postgres odbc excel 2016 utf 8 issues code
#Actual postgres odbc excel 2016 utf 8 issues driver
Because a ColumnSize of 1 is less than a BufferLength of (for example) 3, the driver generates an error.
#Actual postgres odbc excel 2016 utf 8 issues code
In the other direction, it compares ColumnSize with the BufferLength in SQLBindParameter before doing the conversion between the different code pages on the client and server. For example, a right apostrophe character (U+2019) is encoded in CP-1252 as the single byte 0x92, but in UTF-8 as the 3-byte sequence 0xe2 0x80 0x99.įor example, if your encoding is UTF-8 and you specify 1 for both BufferLength and ColumnSize in SQLBindParameter for an out-parameter, and then attempt to retrieve the preceding character stored in a char(1) column on the server (using CP-1252), the driver attempts to convert it to the 3-byte UTF-8 encoding, but cannot fit the result into a 1-byte buffer. This error occurs since conversions between character encodings may change the length of the data. However, if the SQL data type is varchar(n) or char(n), the application binds the parameter as SQL_C_CHAR for the C type, and SQL_CHAR or SQL_VARCHAR for the SQL type, and the character encoding of the client is UTF-8, you may get a "String data, right truncation" error from the driver even if the value of ColumnSize is aligned with the size of the data type on the server. The ColumnSize parameter of SQLBindParameter refers to the number of characters in the SQL type, while BufferLength is the number of bytes in the application's buffer. The driver manager will not attempt this conversion when calling the SQLWCHAR versions of the ODBC API (for example, SQLDriverConnectW). The driver manager attempts this conversion when calling the SQLCHAR versions of the ODBC API (for example, SQLDriverConnectA). Currently, data corruption occurs when one or more characters in the string are not valid UTF-8 characters. If the client encoding is UTF-8, the driver manager does not always correctly convert from UTF-8 to UTF-16. For more information, see End-User-Defined and Private Use Area Characters. Each library may produce different results when performing these conversions. Conversions in the driver use the Windows, Linux, or macOS conversion libraries. Conversions performed on the server within Transact-SQL use the Windows conversion library. Windows, Linux, and macOS convert characters from the Private Use Area (PUA) or End User-Defined Characters (EUDC) differently. See musl libc - functional differences from glibc for more information. For example, en_US.UTF-8 is not available.
#Actual postgres odbc excel 2016 utf 8 issues drivers
Known issuesĪdditional issues will be posted on the SQL Server Drivers blog.ĭue to system library limitations, Alpine Linux supports fewer character encodings and locales. It also contains steps for troubleshooting connectivity issues. This article contains a list of known issues with the Microsoft ODBC Driver 13, 13.1, and 17 for SQL Server on Linux and macOS.