You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

通过ODBC向Access/Excel导入日台韩字符出现乱码问题求助

解决ODBC导入中日韩字符乱码问题

一、Oracle ODBC连接配置调整

你的TNS配置未指定字符集,这是导致非欧洲字符乱码的核心原因,调整如下:

  • 修改TNSNAMES.ORA配置,在CONNECT_DATA段添加(CHARACTERSET = AL32UTF8),强制连接时使用UTF-8字符集:
    database1_app.PROD =
      (DESCRIPTION =
        (ADDRESS_LIST =
          (ADDRESS=(PROTOCOL=TCP)(PORT=1521)(HOST=server1.xx99.company.net))
          (ADDRESS=(PROTOCOL=TCP)(PORT=1521)(HOST=server2.xx99.company.net))
          (ADDRESS=(PROTOCOL=TCP)(PORT=1521)(HOST=server3.xx99.company.net))
        )
      (CONNECT_TIMEOUT=10)(RETRY_COUNT=5)(RETRY_DELAY=2)(TRANSPORT_CONNECT_TIMEOUT=2)
      (LOAD_BALANCE=off)
      (FAILOVER=on)
      (CONNECT_DATA=
        (SERVER=DEDICATED)
        (SERVICE_NAME=oracle_conn)
        (CHARACTERSET = AL32UTF8)
        (FAILOVER_MODE=(TYPE=SELECT)(METHOD=BASIC)(RETRIES=180)(DELAY=5))
     )
    )
    
  • 打开ODBC管理器,找到对应的Oracle数据源,进入配置界面,确认字符集选项设为AL32UTF8,不要选GBK或其他单字节字符集。

二、SQL Server ODBC连接配置调整

SQL Server默认用ANSI编码传输数据,需强制启用Unicode支持:

  • 修改连接字符串,添加Unicode=True参数(如需指定UTF-8,可额外添加CharacterSet=UTF-8):
    server4.xx99.company.net,1128;Database=你的数据库名;Unicode=True;UID=你的用户名;PWD=你的密码;
    
  • 在ODBC管理器配置SQL Server数据源时,勾选使用Unicode字符选项,确保数据以Unicode格式传输。

三、Access/Excel端导入设置

  • 导入Access时,在导入向导的字段设置环节,把所有文本字段的数据类型设为短文本或长文本,避免使用仅支持ANSI的旧类型。
  • 导入Excel时,先把目标单元格格式设为文本,或者在导入向导里选择Unicode文本作为数据类型检测规则,防止Excel自动转换编码导致乱码。

四、验证与排查

  • 重新配置后,导入少量中日韩字符数据测试,检查显示是否正常。
  • 若问题依旧,检查数据库端字符集:
    • Oracle执行SELECT userenv('NLS_CHARACTERSET') FROM dual;,确认结果是AL32UTF8;
    • SQL Server执行SELECT collation_name FROM sys.databases WHERE name='你的数据库名';,确认排序规则支持UTF-8(比如Chinese_Taiwan_Stroke_CI_AS_UTF8、Japanese_CI_AS_UTF8这类带UTF8后缀的)。

内容的提问来源于stack exchange,提问作者N G

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.13 09:06:12