@@ -111,20 +111,20 @@ function readPString (buffer, offset, typeArgs, rootNode) {
111111 }
112112
113113 return {
114- value : buffer . toString ( 'utf8' , cursor , strEnd ) ,
114+ value : buffer . toString ( typeArgs . encoding || 'utf8' , cursor , strEnd ) ,
115115 size : strEnd - offset
116116 }
117117}
118118
119119function writePString ( value , buffer , offset , typeArgs , rootNode ) {
120120 const length = Buffer . byteLength ( value , 'utf8' )
121121 offset = sendCount . call ( this , length , buffer , offset , typeArgs , rootNode )
122- buffer . write ( value , offset , length , 'utf8' )
122+ buffer . write ( value , offset , length , typeArgs . encoding || 'utf8' )
123123 return offset + length
124124}
125125
126126function sizeOfPString ( value , typeArgs , rootNode ) {
127- const length = Buffer . byteLength ( value , 'utf8' )
127+ const length = Buffer . byteLength ( value , typeArgs . encoding || 'utf8' )
128128 const size = calcCount . call ( this , length , typeArgs , rootNode )
129129 return size + length
130130}
@@ -237,20 +237,20 @@ function sizeOfBitField (value, typeArgs) {
237237 } , 0 ) / 8 )
238238}
239239
240- function readCString ( buffer , offset ) {
240+ function readCString ( buffer , offset , typeArgs ) {
241241 let size = 0
242242 while ( offset + size < buffer . length && buffer [ offset + size ] !== 0x00 ) { size ++ }
243243 if ( buffer . length < offset + size + 1 ) { throw new PartialReadError ( ) }
244244
245245 return {
246- value : buffer . toString ( 'utf8' , offset , offset + size ) ,
246+ value : buffer . toString ( typeArgs ?. encoding || 'utf8' , offset , offset + size ) ,
247247 size : size + 1
248248 }
249249}
250250
251- function writeCString ( value , buffer , offset ) {
252- const length = Buffer . byteLength ( value , 'utf8' )
253- buffer . write ( value , offset , length , 'utf8' )
251+ function writeCString ( value , buffer , offset , typeArgs ) {
252+ const length = Buffer . byteLength ( value , typeArgs ?. encoding || 'utf8' )
253+ buffer . write ( value , offset , length , typeArgs ?. encoding || 'utf8' )
254254 offset += length
255255 buffer . writeInt8 ( 0x00 , offset )
256256 return offset + 1
0 commit comments