汉字通过asp网页插入mysql数据库时,网页出现'\xC4\xDA' 的错误信息:

滔声依旧326 2023-04-20 15:01:53

系统:windows server 2019(64位)

mysql:mysql-installer-community-8.0.33.0.msi(64位)

ODBC :MySQL ODBC 8.0 Unicode  Driver(64位)

======================================================================================

1.在mysql黑屏下可以插入汉字;

2.通过asp插入汉字时出现以下错误:

Microsoft OLE DB Provider for ODBC Drivers 错误 '80004005'

[MySQL][ODBC 8.0(w) Driver][mysqld-8.0.32]Incorrect string value: '\xC4\xDA' for column 'SafetyLocation' at row 1

/cnxqzzx/1administrator/1_Add_Safety.asp,行 63

======================================================================================

1、数据表编码信息:

show table status from lcnxqzzx like '%schools%'

Name | Engine | Version | Row_format | Rows | Avg_row_length | Data_length | Max_data_length | Index_length | Data_free | Auto_increment | Create_time | Update_time | Check_time | Collation | Checksum | Create_options | Comment |

| schoolsafety | InnoDB | 10 | Dynamic | 39 | 420 | 16384 | 0 | 0 | 0 | NULL | 2023-04-20 11:24:34 | 2023-04-20 11:23:51 | NULL | utf8mb4_0900_ai_ci | N

2、数据库字符编码:

show variables like '%char%';

| Variable_name | Value | character_set_client | utf8mb4 | | character_set_connection | utf8mb4 | | character_set_database | utf8mb4 | | character_set_filesystem | binary | | character_set_results | utf8mb4 | | character_set_server | utf8mb4 | | character_set_system | utf8mb3 | | character_sets_dir | C:\Program Files\MySQL\MySQL Server 8.0\share\charsets\ | 

3、查询数据库字符排序规则:

show variables like '%colla%';

+-------------------------------+--------------------+ | Variable_name | Value | +-------------------------------+--------------------+ | collation_connection | utf8mb4_0900_ai_ci | | collation_database | utf8mb4_0900_ai_ci | | collation_server | utf8mb4_0900_ai_ci | | default_collation_for_utf8mb4 | utf8mb4_0900_ai_ci | +-------------------------------+--------------------+

=============================================================================

我是新手已经调试两天解决不了,请高手高手赐教!!!

...全文
88 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
IT小猫咪 2023-06-16
  • 打赏
  • 举报
回复

这个错误主要是由于字符集不兼容导致的,MySQL 8.0默认使用四字节UTF-8字符集(utf8mb4),而ODBC的UTF-8驱动默认使用三字节UTF-8字符集(utf8),asp网页的默认字符集可能也是gbk等,需要进行字符集转换。

以下是一些解决方案:

  1. 将MySQL数据库表的字符集改为utf8。

执行如下操作:

ALTER TABLE table_name CONVERT TO CHARACTER SET utf8;

  1. 将ODBC驱动改为支持utf8mb4的版本。

可以尝试安装MySQL Connector/ODBC 8.0.26 版本,该版本支持utf8mb4字符集。

  1. 进行字符集转换。

在ASP代码中将SafeLocation字段的值从gbk或其他字符集转换为utf8mb4字符集,可以通过如下代码进行转换:

safetyLocation = Server.HtmlEncode(Request.Form("SafeLocation"))
safetyLocation = Response.CharSetConvert("gbk", "utf-8", safetyLocation)

或者使用ADODB.Stream对象在ASP中进行字符集转换。

希望以上内容能够对您有所帮助。

chenyansong 2023-06-16
  • 打赏
  • 举报
回复

请用控制台打印出来拼接字符后发给数据库的语句

Firstfire 2023-04-22
  • 打赏
  • 举报
回复

设置一下ASP页面的字符集呢?

185,322

社区成员

发帖
与我相关
我的任务
社区描述
一个人可以走的很快,一群人才能走的更远!
数据库 企业社区
社区管理员
  • Lucifer三思而后行
  • 韬光养晦208
  • 芒果再努力
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

❤️ 添加版主微信:Lucifer-4622 

🎉【数据库交流社区】联合 【摸鱼社区】本周重磅推出【兄弟社区每日打卡】活动 

🎁 新玩法,奖励升级!

数据库交流社区:https://bbs.csdn.net/forums/lucifer-database

摸鱼社区:https://bbs.csdn.net/forums/moyu

新增抽奖池:6本技术书籍 📚 + 每周社区排名奖品 🏅 ,绝对丰厚!

奖品预览可以参考:CSDN社区赞助奖品一览

⭐️ 活动要求:

1、每日 同时在两个社区 打卡贴进行发帖打卡,提交任务

2、同时在两个社区 坚持 7 天打卡 ,将参与到抽奖名单中,这很重要!

3、参加抽奖请先 添加打卡抽奖群,否则无效,加群请添加微信:Lucifer-4622

【社区积分规则】

  • 在社区「发帖」得10积分
  • 内容被管理员「加精」得10积分
  • 点赞他人内容得1积分
  • 评论内容得2积分

社区玩法👇👇👇

试试用AI创作助手写篇文章吧