使用node-mssql时,编码'_sbcs'具有错误的'字符'(必须是len 128或256)

问题描述 投票:0回答:1

我使用node-mysql返回一个简单的数据集,我的db表只有2个varchar字段,当我启动我的应用程序查询数据时,它抛出错误'编码'_sbcs'有错误的'字符'(必须是len 128)或256)'

版本是 * NodeJS:10.15.3 * node-mssql:4.3.5 * SQL Server:ms SQL 2014

错误:编码'_sbcs'在新的SBCSCodec上有错误的'字符'(必须是len 128或256)(C:\ Users \ qpan \ Downloads \ bzwapp-1.2.0 + 0272 \ bzwapps \ lib \ auth \ mssql-auth在Object.getCodec上的\ node_modules \ iconv-lite \ encodings \ sbcs-codec.js:14:15)(C:\ Users \ qpan \ Downloads \ bzwapp-1.2.0 + 0272 \ bzwapps \ lib \ auth \ mssql-auth \ node_modules \ iconv-lite \ lib \ index.js:100:25)在Object.getDecoder(C:\ Users \ qpan \ Downloads \ bzwapp-1.2.0 + 0272 \ bzwapps \ lib \ auth \ mssql-auth \ node_modules) \ iconv-lite \ lib \ index.js:127:23)at Object.decode(C:\ Users \ qpan \ Downloads \ bzwapp-1.2.0 + 0272 \ bzwapps \ lib \ auth \ mssql-auth \ node_modules \ iconv -lite \ lib \ index.js:40:25)在C:\ Users \ qpan \ Downloads \ bzwapp-1.2.0 + 0272 \ bzwapps \ lib \ auth \ mssql-auth \ node_modules \ tedious \ lib \ value-parser .js:379:22在C:\ Users \ qpan \ Downloads \ bzwapp-1.2.0 + 0272 \ bzwapps \ lib \ auth \ mssql-auth \ node_modules \ tedious \ lib \ token \ stream-parser.js:433: 9在Parser.awaitData(C:\ Users \ qpan \ Downloads \ bzwapp-1.2.0 + 0272 \ bzwapps \ lib \ auth \ mssql-auth \ node_modules \ tedious \ lib \ token \ stream-pa rser.js:144:9)在Parser.readBuffer(C:\ Users \ qpan \ Downloads \ bzwapp-1.2.0 + 0272 \ bzwapps \ lib \ auth \ mssql-auth \ node_modules \ tedious \ lib \ token \ stream- parser.js:430:12)在readChars(C:\ Users \ qpan \ Downloads \ bzwapp-1.2.0 + 0272 \ bzwapps \ lib \ auth \ mssql-auth \ node_modules \ tedious \ lib \ value-parser.js: 378:19)在C:\ Users \ qpan \ Downloads \ bzwapp-1.2.0 + 0272 \ bzwapps \ lib \ auth \ mssql-auth \ node_modules \ tedious \ lib \ value-parser.js:188:20 at C: \ Parser.awaitData上的用户\ qpan \ Downloads \ bzwapp-1.2.0 + 0272 \ bzwapps \ lib \ auth \ mssql-auth \ node_modules \ tedious \ lib \ token \ stream-parser.js:203:9(C:\用户\ qpan \ Downloads \ bzwapp-1.2.0 + 0272 \ bzwapps \ lib \ auth \ mssql-auth \ node_modules \ tedious \ lib \ token \ stream-parser.js:144:9)at Parser.readUInt16LE(C:\用户\ qpan \ Downloads \ bzwapp-1.2.0 + 0272 \ bzwapps \ lib \ auth \ mssql-auth \ node_modules \ tedious \ lib \ token \ stream-parser.js:200:12)readDataLength(C:\ Users \ qpan \ Downloads \ bzwapp-1.2.0 + 0272 \ bzwapps \ lib \ auth \ mssql-auth \ node_modules \ tedious \ lib \ value-parser.js:67:27)在C:\ Users \ qpan \ Downlo ads \ bzwapp-1.2.0 + 0272 \ bzwapps \ lib \ auth \ mssql-auth \ node_modules \ tedious \ lib \ value-parser.js:89:5 at readTextPointerNull(C:\ Users \ qpan \ Downloads \ bzwapp-1.2 .0 + 0272 \ bzwapps \ lib \ auth \ mssql-auth \ node_modules \ tedious \ lib \ value-parser.js:36:5)at valueParse(C:\ Users \ qpan \ Downloads \ bzwapp-1.2.0 + 0272) \ bzwapps \ lib \ auth \ mssql-auth \ node_modules \ tedious \ lib \ value-parser.js:88:3)at next(C:\ Users \ qpan \ Downloads \ bzwapp-1.2.0 + 0272 \ bzwapps \ lib \ auth \ mssql-auth \ node_modules \ tedious \ lib \ token \ nbcrow-token-parser.js:34:45)在C:\ Users \ qpan \ Downloads \ bzwapp-1.2.0 + 0272 \ bzwapps \ lib \ auth \ mssql-auth \ node_modules \ tedious \ lib \ token \ nbcrow-token-parser.js:53:5在C:\ Users \ qpan \ Downloads \ bzwapp-1.2.0 + 0272 \ bzwapps \ lib \ auth \ mssql-在Parser.awaitData(C:\ Users \ qpan \ Downloads \ bzwapp-1.2.0 + 0272 \ bzwapps \ lib \ auth \ mssql-auth)中的auth \ node_modules \ tedious \ lib \ token \ stream-parser.js:433:9 \ node_modules \ tedious \ lib \ token \ stream-parser.js:144:9)在Parser.readBuffer(C:\ Users \ qpan \ Downloads \ bzwapp-1.2.0 + 0272 \ bzwapps \ lib \ auth \ mssql) -auth \ node_modules \乏味\ lib中\令牌\流parser.js:430:12)

sql-server encoding node-sqlserver
1个回答
0
投票

啊哈,我的问题是由'ANT',部署工具引起的,我使用ANT来复制'node-model'中的文件夹和文件,但文件'sbcs-data-generated.js'的编码是从UTF-改变的8到ANSI。那导致了这个问题。

我的解决方案---在build.xml中添加了'encoding =“UTF-8”'

© www.soinside.com 2019 - 2024. All rights reserved.