sql-serverencodingnode-sqlserver

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-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) 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\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) 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)


Solution

  • 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