0

我正在使用 node-mysql 返回一个简单的数据集,我的 db 表只有 2 个 varchar 字段,当我启动应用程序来查询数据时,它会抛出错误 'Encoding '_sbcs' has wrong 'chars' (must be of len 128或 256) '

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

错误:在新的 SBCSCodec (C:\Users\qpan\Downloads\bzwapp-1.2.0+0272\bzwapps\lib\auth\mssql-auth \node_modules\iconv-lite\encodings\sbcs-codec.js:14:15) 在 Object.getCodec (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) 在 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-parser.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 在 C:\Users\qpan\Downloads\bzwapp-1.2.0+0272\bzwapps\lib\auth\mssql-auth\node_modules\ Parser.awaitData (C:\Users\qpan\Downloads\bzwapp-1.2.Parser.readUInt16LE (C:\Users\qpan\Downloads\bzwapp-1.2.0+0272\bzwapps\lib\auth\mssql-auth\node_modules\tedious\lib\token\stream-parser.js:144:9) 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\Downloads\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) 在 valueParse (C:\Users\qpan\Downloads\bzwapp-1.2.0+0272\bzwapps\lib\auth\mssql-auth\node_modules\tedious \lib\value-parser.js:88:3) 在下一个 (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-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-parser.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)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-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-parser.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)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-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-parser.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)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)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)

4

1 回答 1

0

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

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

于 2019-03-18T10:30:29.213 回答