首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何用nodejs从mysql中解码汉字

如何用nodejs从mysql中解码汉字
EN

Stack Overflow用户
提问于 2018-09-20 09:27:04
回答 1查看 727关注 0票数 1

我试图通过语言从mysql数据库中查询一个注释表。每当我通过语言查询以获取中文注释时,它都会显示编码的胡乱字符。但是,每当我使用python查询时,它就能工作。

云平台: Google数据库位置: Google编程语言: Nodejs

下面是我的代码

代码语言:javascript
复制
// Require process, so we can mock environment variables
  const process = require('process');
  const Knex = require('knex');
  const express = require('express');
  const app = express();

  const config = {
     user: process.env.SQL_USER,
     password: process.env.SQL_PASSWORD,
     database: process.env.SQL_DATABASE,
     socketPath: `/cloudsql/${process.env.INSTANCE_CONNECTION_NAME}`
   };


    var knex = Knex({
       client: 'mysql',
       connection: config
    });



  app.get('/', (req, res) => {
      knex.select('post')
       .from('comment')
         .where({
             'language': 'zh'
          }).limit(1).then((rows) => {
               res.send(rows);
          }).catch((err) => {
            res.send(err);
           });
     });

这是我的查询结果:

“帖子”:"æœ€ç™½ç—´çš„éƒ¨é•¿ï¼æœ€åŸºæœ¬çš„常识和逻辑都没有。真丢人3

请帮忙..。

EN

回答 1

Stack Overflow用户

发布于 2018-09-24 21:44:07

如果将“"æœ€ç™½ç—´çš„éƒ¨é•¿ï¼æœ€åŸºæœ¬çš„常识和逻辑都没有。真丢人4“编码为UTF-8,则文本最白痴的部长基本的常识和逻辑都没有.真丢人将被读取并解码为windows-1252字符集。

这种错误解码可能发生在几个不同的地方:

  1. 当第一次添加数据时,从客户端到应用程序写入数据库
  2. 添加数据时,应用程序与MySQL之间的
  3. 跨MySQL中未正确应用的配置更改。
  4. 在MySQL和应用程序之间读取数据。
  5. 在应用程序和终端客户端之间向您显示数据。

为了调查,我建议你要有系统。首先使用其他工具(例如PHPMyAdmin或Cloud中的mysql命令行)访问数据。如果您看到正确的数据,您知道问题是(4)或(5)。如果数据库中肯定有错误的数据,则为(1)、(2)或(3)。

这个错误发生的最常见的地方是(5),所以我将进一步讨论这个问题。这是因为通常网站会将字符集设置为错误,或者根本不出错。要解决这个问题,我们必须使字符集显式化。您可以在express.js中通过添加:

代码语言:javascript
复制
res.set('Content-Type', 'text/plain; charset=utf-8')
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52421771

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档