数据库直接插入中文数据变成???

数据库直接插入中文数据变成???

1. 直接在数据库插入数据

- 查看数据库编码

  1. [ Mysql语句]:SHOW VARIABLES LIKE "CHARACTER%";

  2. 结果:是否存在"utf8"是否存在"utf8"
    若不存在"utf8":使用语句SET character_set_client=utf8;,改变数据库编码。
    - 查看列的编码

  3. 同一个数据库中,有表可以存储中文且不出乱码,则出现乱码的表中varchar字符编码不是utf8!!

  4. [Mysql语句]修改列的编码:alter table <表名> change <字段名> <字段名> <类型> character set utf8;

2. 在后端存储时,中文乱码

1.查看数据库连接语句,看连接语句中是否定义了编码为utf8

characterEncoding=utf-8

以Java为例

jdbc:mysql://127.0.0.1/test?useUnicode=true&characterEncoding=utf-8&tinyInt1isBit=false&allowMultiQueries=true&serverTimezone=GMT%2B8

2.查看数据库及表的编码,详细参考前面

注:!!!一定要注意Mysql中的特殊字符

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
根据你提供的信息,当你向数据库存入数据时,数据保存为"???"的问题可能是由于字符编码不匹配导致的。你已经检查了mybatis-config.xml文件和url的信息,并将字符编码改为"UTF-8",这样数据可以正常存入数据库了。在创建数据库时,确保选择了与你配置文件中一致的字符集和排序规则,这样后续插入数据就不会报错。如果数据保存到数据库中显示为"???",你可以按照以下步骤进行排查和解决: 1. 检查工作区是否为UTF-8编码。 2. 检查数据库编码是否设置为UTF-8。 3. 检查JSP是否设置为UTF-8编码。 4. 检查是否编写了过滤器来处理字符编码。可以使用如下代码作为过滤器的示例: ```java package com.yuming.crm.web.filter; import java.io.IOException; import javax.servlet.Filter; import javax.servlet.FilterChain; import javax.servlet.ServletException; import javax.servlet.ServletRequest; import javax.servlet.ServletResponse; public class EncodingFilter implements Filter { @Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException { request.setCharacterEncoding("UTF-8"); response.setContentType("text/html;charset=utf-8"); chain.doFilter(request, response); System.out.println("过滤成功"); } } ``` 请注意,在实际应用中,你需要根据具体的框架或需求来配置过滤器。 通过检查工作区、数据库编码、JSP编码和过滤器是否正确设置,你应该能够解决数据保存到数据库中显示为"???"的问题。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* [mybatis保存中文数据数据库变成???号](https://blog.csdn.net/qq_45852574/article/details/125742067)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] - *2* *3* [数据保存到数据库中显示为“?”或者乱码的解决办法](https://blog.csdn.net/weixin_38938129/article/details/82658156)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 50%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值