export const  hexToStr =  function ( hex,  encoding)  { var trimedStr =  hex. trim ( ) ; var rawStr =  trimedStr. substr ( 0 ,  2 ) . toLowerCase ( )  == =  "0x"  ?  trimedStr. substr ( 2 )  :  trimedStr; var len =  rawStr. length; var curCharCode; var resultStr =  [ ] ; for  ( var i =  0 ;  i <  len;  i =  i +  2 )  { curCharCode =  parseInt ( rawStr. substr ( i,  2 ) ,  16 ) ; resultStr. push ( curCharCode) ; } var val =  "" ; var arr =  resultStr; for  ( let i =  0 ;  i <  arr. length;  i++ )  { val +=  String. fromCharCode ( arr[ i] ) ; } return  val; 
} 
export const  tenToHex =  ( num,  digit =  4 )  = >  { const  hex =  num. toString ( 16 ) ; return  hex. padStart ( digit,  0 ) ; 
} 
export const  stringToHex =  ( str)  = > { var val =  "" ; for  ( var i =  0 ;  i <  str. length;  i++ )  { if  ( val ==  "" )  { val =  str. charCodeAt ( i) . toString ( 16 ) ;  }  else  { val +=  str. charCodeAt ( i) . toString ( 16 ) ;  } } return  val; 
} 
export const  arrayBufferToHexString =  ( buffer)  = >  { const  hexArr =  Array. prototype. map. call ( new Uint8Array ( buffer) , function ( bit)  { return  ( '00'  +  bit. toString ( 16 ) ) . slice ( - 2 ) } ) return  hexArr. join ( '' ) . toUpperCase ( ) ; 
} export let hexStringToArrayBuffer =  ( str)  = >  { return  new Uint8Array ( str. match ( / [ \da- f] { 2 } / gi) . map ( function ( h)  { return  parseInt ( h,  16 ) } ) ) . buffer
} 
npm install iconv- lite
export let hexToGb2312 =  ( hexString) = >  { const  buffer =  Buffer. from ( hexString,  'hex' ) ; const  decodedString =  iconv. decode ( buffer,  'GB2312' ) ; return  decodedString; 
}