Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/427.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何使用node.js从mysql获取可读字符串?_Javascript_Mysql_Node.js_Node Mysql - Fatal编程技术网

Javascript 如何使用node.js从mysql获取可读字符串?

Javascript 如何使用node.js从mysql获取可读字符串?,javascript,mysql,node.js,node-mysql,Javascript,Mysql,Node.js,Node Mysql,当用户注册时,我将其名称保存在mysql中(数据库中的俄文名称看起来像-ÐÐминÐ)。当我用PHP从数据库中获取数据并打印出来时,效果很好(显示俄文字母),但当用户连接到node.js服务器(使用socket.io),进行mysql查询(使用node mysql模块)并从查询中接收数据时,他的名字看起来像-ÐñинÐ。 如何获得可读的字母 以下是我的服务器文件中的一些行: var mysql = require('mysql'); var db = mysql.createConne

当用户注册时,我将其名称保存在mysql中(数据库中的俄文名称看起来像-ÐÐминÐ)。当我用PHP从数据库中获取数据并打印出来时,效果很好(显示俄文字母),但当用户连接到node.js服务器(使用socket.io),进行mysql查询(使用node mysql模块)并从查询中接收数据时,他的名字看起来像-ÐñинÐ。 如何获得可读的字母

以下是我的服务器文件中的一些行:

var mysql = require('mysql');
var db = mysql.createConnection({host:'x', user:'x', password:'x', database:'x', charset:'UTF8_GENERAL_CI'});
db.connect();
var http = require('http');
var server = http.createServer(function(req,res){
    req.setEncoding("utf8");
    }).listen(8080);
var io = require('socket.io').listen(server);

我认为这应该有帮助:

function onRequest(request, response) {

  ...

  request.setEncoding("utf8");

  ...
}

http.createServer(onRequest).listen(8888);

以下是我在前端使用的内容:

function encode_utf8(s) {
  return unescape(encodeURIComponent(s));
}

function decode_utf8(s) {
  return decodeURIComponent(escape(s));
}
所以,试着将字符串传递给

decodeURIComponent(escape(name));
我也有同样的问题。
试着调试它。如果fronted中的console.log数据的字符集不正确,只需更新socket.io脚本。

您需要使用相同的编码获取所有系统(PHP、node、mysql)来解释数据。我编辑并添加了服务器文件中的一些行。下面是我如何设置mysql模块字符集和服务器请求编码的。我还能做什么?嗨。我已经试过了,但是node.js服务器死了,错误是:URIError:URI在decodeURIComponent(本机)处格式错误。找到了这个函数:它对我部分有效(有些字母显示不正确)。不,我的意思是在前端使用它,在那里你应该显示字符串。不在nodejs部分。已尝试此操作,但在浏览器控制台中出现相同错误(未捕获URIError:URI格式错误)。我需要在服务器端得到正确的字母。