racket / db

Other
21 stars 17 forks source link

odbc-driver-connect query get error when the column contains unicode characters #24

Closed WuTianyi321 closed 3 years ago

WuTianyi321 commented 3 years ago

Environment Win10 1709 Racket v7.9[cs] sql server (version 11.0.33000.0, database collation Chinese_PRC_CI_AS)

Description I try to use the query procedure to get some data from the sql server database (version 11.0.33000.0), when the column name of the table contains unicode characters, an error occurs. For example, run following code

#lang racket
(require db)
(define c
  (odbc-driver-connect
   "AutoTranslate=yes;DRIVER={ODBC Driver 17 for SQL Server};SERVER=localhost;DATABASE=db;UID=sa;PWD=thepassword"))
(query c "select * from t")

then return an error:

bytes->string/utf-8: byte string is not a well-formed UTF-8 encoding byte string: #"\262\342\312\324"

The create table script is

CREATE TABLE [dbo].[t](
    [测试] [nchar](10) NULL
) ON [PRIMARY]