character_set_client
?〜
我尝试过的事情:
%windir%\syswow64\odbcad32.exe
my.ini
当我进行以下查询时
SHOW VARIABLES WHERE Variable_name LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%'
来自客户端(Excel),character_set_client
总是设置为utf8
,无论我在连接字符串中定义什么字符集。
〜
第3项(my.ini
)的更多细节:
init_connect
权限的用户设置SUPER
does not apply default-character-set
是deprecated init_connect
,我尝试了SET NAMES <charset>
和SET CHARACTER SET <charset>
character-set-client-handshake
和skip-character-set-client-handshake
big5
,gb2312
,gbk
,latin1
。 UTF8给了我一个问题(如下所述)。(PS:我不知道我应该在客户端中定义哪个字符集!在其他使用英文版Windows的计算机中,将所有内容设置为utf8
worked。)
我希望能够将重音字符(如果可能的话,还有中文字符)从客户端(Excel)插入到数据库中。我可以在MySQL Workbench中执行此操作,但不能从Excel执行此操作(请参阅下面的错误)。
当我尝试将重音字符从客户端(Excel)插入数据库时,我收到此错误:
Run-time error '-2147467259 (80004005)'
Incorrect string value: '\xE3\xE3\xE3~~c...'
奇怪的是,当我在连接字符串中将charset定义为UTF8
时,从服务器发送到客户端的结果将错误地呈现:
当我设置除UTF8
以外的许多字符集(上面引用的所有4个,可能还有其他字符集)时,我得到了正确的结果(但我仍然无法插入重音字符):
(已经尝试过其他字符集,如前所述)
Dim oConn As ADODB.Connection
Dim sConn As String
Set oConn = New ADODB.Connection
sConn = "DRIVER={MySQL ODBC 5.3 Unicode Driver};" & _
"SERVER=localhost;" & _
"DATABASE=mydb;" & _
"USER=myself;" & _
"PASSWORD=mypass;" & _
"OPTION=3;" & _
"CHARSET=big5;"
Call oConn.Open(sConn)
(使用DSN并在odbcad32
中设置字符集)
Dim oConn As ADODB.Connection
Dim sConn As String
Set oConn = New ADODB.Connection
sConn = "DSN=myDSN;UID=myself;PWD=mypass;"
Call oConn.Open(sConn)
两个版本都有效但不允许我插入重音字符。