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

如何解决Summernote存入Unicode字符到数据库显示???的问题

解决Summernote存入Unicode字符显示为“???”的问题
  • 确认数据库字段的Unicode支持
    虽然数据库排序规则是latin_general_bin2,但字段的字符集必须支持Unicode存储:

    • 若使用SQL Server,将字段类型改为nvarchar(推荐,替代ntext),latin_general_bin2排序规则可搭配nvarchar使用,不影响Unicode存储。
    • 若使用MySQL,将字段字符集改为utf8mb4,排序规则可保留latin_general_bin2或对应utf8mb4的排序规则。
  • 强制数据库连接使用UTF-8编码
    应用程序与数据库建立连接时,必须明确指定UTF-8编码,避免编码转换丢失字符:

    • PHP示例:mysqli_set_charset($conn, 'utf8mb4');
    • .NET示例:连接字符串添加Unicode=true;charset=utf8
    • Java示例:数据库URL添加useUnicode=true&characterEncoding=utf8
  • 确保前端提交编码正确

    • 页面头部添加<meta charset="UTF-8">,保证页面本身编码为UTF-8。
    • 表单标签添加accept-charset="UTF-8",明确表单提交时使用UTF-8编码传输数据。
  • 检查Summernote配置与后端接收逻辑

    • Summernote默认保留UTF-8编码字符,无需额外配置,避免手动对内容做编码转换操作。
    • 后端接收数据时,直接使用原始UTF-8数据存入数据库,不要进行非UTF-8的转码(比如不要用iconv转成latin1)。
  • 排查验证步骤
    绕过Summernote,直接在后端代码中插入测试Unicode字符(如“សួស្តី”)到数据库:

    • 若存入后正常显示,说明问题出在前端提交或Summernote处理环节,重点检查表单编码和Summernote配置。
    • 若仍然显示“???”,说明数据库字段或连接编码存在问题,回到前两步排查。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.05 10:40:43