简体   繁体   中英

Encoding '_sbcs' has incorrect 'chars' (must be of len 128 or 256) when using node-mssql

I am using node-mysql to return a simply dataset, my db table only have 2 varchar fields, when I started my application to querying the data, it throws error 'Encoding '_sbcs' has incorrect 'chars' (must be of len 128 or 256) '

the versions are
* NodeJS: 10.15.3
* node-mssql: 4.3.5
* SQL Server: ms SQL 2014

Error: Encoding '_sbcs' has incorrect 'chars' (must be of len 128 or 256) at new 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) at 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) at 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) at C:\\Users\\qpan\\Downloads\\bzwapp-1.2.0+0272\\bzwapps\\lib\\auth\\mssql-auth\\node_modules\\tedious\\lib\\value-parser.js:379:22 at C:\\Users\\qpan\\Downloads\\bzwapp-1.2.0+0272\\bzwapps\\lib\\auth\\mssql-auth\\node_modules\\tedious\\lib\\token\\stream-parser.js:433:9 at 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) at 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) at readChars (C:\\Users\\qpan\\Downloads\\bzwapp-1.2.0+0272\\bzwapps\\lib\\auth\\mssql-auth\\node_modules\\tedious\\lib\\value-parser.js:378:19) at 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:\\Users\\qpan\\Downloads\\bzwapp-1.2.0+0272\\bzwapps\\lib\\auth\\mssql-auth\\node_modules\\tedious\\lib\\token\\stream-parser.js:203:9 at 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) at Parser.readUInt16LE (C:\\Users\\qpan\\Downloads\\bzwapp-1.2.0+0272\\bzwapps\\lib\\auth\\mssql-auth\\node_modules\\tedious\\lib\\token\\stream-parser.js:200:12) at readDataLength (C:\\Users\\qpan\\Downloads\\bzwapp-1.2.0+0272\\bzwapps\\lib\\auth\\mssql-auth\\node_modules\\tedious\\lib\\value-parser.js:67:27) at 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) at 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 at C:\\Users\\qpan\\Downloads\\bzwapp-1.2.0+0272\\bzwapps\\lib\\auth\\mssql-auth\\node_modules\\tedious\\lib\\token\\stream-parser.js:433:9 at 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) at 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)

Aha, my issue is caused by 'ANT', the deploy tool, I used ANT to copy the folder and files in 'node-model' , but the encoding of file 'sbcs-data-generated.js' was changed from UTF-8 to ANSI. that caused the problem.

my solution was --- added 'encoding="UTF-8"' in build.xml

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM