【问题标题】:Unable to enter Unicode data, MySql, Express, M*EAN无法输入 Unicode 数据、MySql、Express、M*EAN
【发布时间】:2016-07-08 18:02:24
【问题描述】:

我可以插入英文数据没问题,但是当我插入高棉语时,出现这个错误日志:

info: Session: { id: 1, username: john }
verbose: Executing (default): INSERT INTO `Articles` (`id`,`title`,`content`,`createdAt`,`updatedAt`,`UserId`) VALUES (DEFAULT,'ថេាាថេា','ថេថេាថេាឹ','2016-07-08 09:50:28','2016-07-08 09:50:28',1);
verbose: Executing (default): SELECT `id`, `sid`, `data`, `createdAt`, `updatedAt` FROM `Sessions` AS `Session` WHERE `Session`.`sid` = 'Qzad_nN3rMR2RrsZ-Oa3H4A5BfL2optm' LIMIT 1;
Unhandled rejection RangeError: Invalid status code: 0
    at ServerResponse.writeHead (_http_server.js:192:11)
    at ServerResponse.writeHead (/Users/Roller/Working/Web/mean-stack-relational/node_modules/on-headers/index.js:55:19)
    at ServerResponse.writeHead (/Users/Roller/Working/Web/mean-stack-relational/node_modules/on-headers/index.js:55:19)
    at ServerResponse.writeHead (/Users/Roller/Working/Web/mean-stack-relational/node_modules/on-headers/index.js:55:19)
    at ServerResponse._implicitHeader (_http_server.js:157:8)
    at ServerResponse.write (/Users/Roller/Working/Web/mean-stack-relational/node_modules/compression/index.js:83:14)
    at writetop (/Users/Roller/Working/Web/mean-stack-relational/node_modules/express-session/index.js:286:26)
    at ServerResponse.end (/Users/Roller/Working/Web/mean-stack-relational/node_modules/express-session/index.js:328:16)
    at ServerResponse.send (/Users/Roller/Working/Web/mean-stack-relational/node_modules/express/lib/response.js:205:10)
    at ServerResponse.json (/Users/Roller/Working/Web/mean-stack-relational/node_modules/express/lib/response.js:250:15)
    at ServerResponse.send (/Users/Roller/Working/Web/mean-stack-relational/node_modules/express/lib/response.js:152:21)
    at .<anonymous> (/Users/Roller/Working/Web/mean-stack-relational/app/controllers/articles.js:42:20)
    at tryCatcher (/Users/Roller/Working/Web/mean-stack-relational/node_modules/bluebird/js/release/util.js:16:23)
    at Promise._settlePromiseFromHandler (/Users/Roller/Working/Web/mean-stack-relational/node_modules/bluebird/js/release/promise.js:504:31)
    at Promise._settlePromise (/Users/Roller/Working/Web/mean-stack-relational/node_modules/bluebird/js/release/promise.js:561:18)
    at Promise._settlePromise0 (/Users/Roller/Working/Web/mean-stack-relational/node_modules/bluebird/js/release/promise.js:606:10)
Unhandled rejection RangeError: Invalid status code: 0
    at ServerResponse.writeHead (_http_server.js:192:11)
    at ServerResponse.writeHead (/Users/Roller/Working/Web/mean-stack-relational/node_modules/on-headers/index.js:55:19)
    at ServerResponse.writeHead (/Users/Roller/Working/Web/mean-stack-relational/node_modules/on-headers/index.js:55:19)
    at ServerResponse.writeHead (/Users/Roller/Working/Web/mean-stack-relational/node_modules/on-headers/index.js:55:19)
    at ServerResponse._implicitHeader (_http_server.js:157:8)
    at ServerResponse.end (/Users/Roller/Working/Web/mean-stack-relational/node_modules/compression/index.js:102:14)
    at writeend (/Users/Roller/Working/Web/mean-stack-relational/node_modules/express-session/index.js:257:22)
    at onsave (/Users/Roller/Working/Web/mean-stack-relational/node_modules/express-session/index.js:325:11)
    at .<anonymous> (/Users/Roller/Working/Web/mean-stack-relational/node_modules/express-sequelize-session/lib/e4store.js:90:51)
    at tryCatcher (/Users/Roller/Working/Web/mean-stack-relational/node_modules/bluebird/js/release/util.js:16:23)
    at Promise._settlePromiseFromHandler (/Users/Roller/Working/Web/mean-stack-relational/node_modules/bluebird/js/release/promise.js:504:31)
    at Promise._settlePromise (/Users/Roller/Working/Web/mean-stack-relational/node_modules/bluebird/js/release/promise.js:561:18)
    at Promise._settlePromise0 (/Users/Roller/Working/Web/mean-stack-relational/node_modules/bluebird/js/release/promise.js:606:10)
    at Promise._settlePromises (/Users/Roller/Working/Web/mean-stack-relational/node_modules/bluebird/js/release/promise.js:681:18)
    at Async._drainQueue (/Users/Roller/Working/Web/mean-stack-relational/node_modules/bluebird/js/release/async.js:138:16)
    at Async._drainQueues (/Users/Roller/Working/Web/mean-stack-relational/node_modules/bluebird/js/release/async.js:148:10)
error:  RangeError: Invalid status code: 0
    at ServerResponse.writeHead (_http_server.js:192:11)
    at ServerResponse.writeHead (/Users/Roller/Working/Web/mean-stack-relational/node_modules/on-headers/index.js:55:19)
    at ServerResponse.writeHead (/Users/Roller/Working/Web/mean-stack-relational/node_modules/on-headers/index.js:55:19)
    at ServerResponse.writeHead (/Users/Roller/Working/Web/mean-stack-relational/node_modules/on-headers/index.js:55:19)
    at ServerResponse._implicitHeader (_http_server.js:157:8)
    at ServerResponse.end (/Users/Roller/Working/Web/mean-stack-relational/node_modules/compression/index.js:102:14)
    at writeend (/Users/Roller/Working/Web/mean-stack-relational/node_modules/express-session/index.js:257:22)
    at onsave (/Users/Roller/Working/Web/mean-stack-relational/node_modules/express-session/index.js:325:11)
    at .<anonymous> (/Users/Roller/Working/Web/mean-stack-relational/node_modules/express-sequelize-session/lib/e4store.js:88:51)
    at tryCatcher (/Users/Roller/Working/Web/mean-stack-relational/node_modules/bluebird/js/release/util.js:16:23)
    at Promise._settlePromiseFromHandler (/Users/Roller/Working/Web/mean-stack-relational/node_modules/bluebird/js/release/promise.js:504:31)
    at Promise._settlePromise (/Users/Roller/Working/Web/mean-stack-relational/node_modules/bluebird/js/release/promise.js:561:18)
    at Promise._settlePromise0 (/Users/Roller/Working/Web/mean-stack-relational/node_modules/bluebird/js/release/promise.js:606:10)
    at Promise._settlePromises (/Users/Roller/Working/Web/mean-stack-relational/node_modules/bluebird/js/release/promise.js:685:18)
    at Async._drainQueue (/Users/Roller/Working/Web/mean-stack-relational/node_modules/bluebird/js/release/async.js:138:16)
    at Async._drainQueues (/Users/Roller/Working/Web/mean-stack-relational/node_modules/bluebird/js/release/async.js:148:10)
Warning: Unexpected block "main"  on line 3 of /Users/Roller/Working/Web/mean-stack-relational/app/views/500.jade. This block is never used. This warning will be an error in v2.0.0

我试图删除数据库并创建一个新数据库,但仍然显示错误。

可能是什么问题?请建议。

谢谢,

【问题讨论】:

  • 什么是utf编码类型?
  • 我怎么知道?
  • 向我们提供了错误日志。理想情况下,还应向我们提供您的数据库结构和足以重现问题的代码。
  • 也许值得一提的是 MySQL 的 utf8 字符集实际上并不支持所有的 Unicode。 For all of Unicode, you need utf8mb4.

标签: mysql angularjs node.js unicode


【解决方案1】:

试试这个

ALTER DATABASE databasename CHARACTER SET utf8 COLLATE utf8_unicode_ci;
ALTER TABLE tablename CONVERT TO CHARACTER SET utf8 COLLATE utf8_unicode_ci;

【讨论】:

  • 或许值得一提的是 MySQL 的 utf8 字符集实际上并不支持所有的 Unicode。对于所有 Unicode,您需要 utf8mb4
  • 你是怎么知道的?工作出色。谢谢!
  • (高棉语在 utf8 和 utf8mb4 中都可用。)
猜你喜欢
  • 1970-01-01
  • 2018-09-09
  • 1970-01-01
  • 2018-03-09
  • 1970-01-01
  • 2011-07-11
  • 1970-01-01
  • 2021-10-09
  • 1970-01-01
相关资源
最近更新 更多