Search code examples
javascriptcharacter-encoding

Get PC437 encoding for character


Im trying to get the PC437 hex for a character in Javascript.

console.log('£'.charCodeAt(0).toString(16)) // 'a3'

if i run toString(16) i get the UTF-16 code for the character which is 'a3' which is correct as per here: https://en.wikipedia.org/wiki/Code_page_437

However i need to get 'c9' for that particular character which would be the PC437 hex interpretation for the character?


Solution

  • I published a simple package for legacy CP437(CCSID 437) table. cp437

    Usage:

    const cp437 = require('cp437')
    
    // find by symbol
    console.log('// find by symbol')
    console.log(`('£', 'hex') -> ${cp437.bySymbol('£', 'hex')}`)
    console.log(`('£', 'dec') -> ${cp437.bySymbol('£', 'dec')}`)
    console.log(`('â', 'hex') -> ${cp437.bySymbol('â', 'hex')}`)
    console.log(' ')
    
    // find by hex
    console.log('// find by hex')
    console.log(`('B0', 'symbol') -> ${cp437.byHex('B0', 'symbol')}`)
    console.log(`('EC', 'symbol') -> ${cp437.byHex('EC', 'symbol')}`)
    console.log(' ')
    
    // find by dec
    console.log('// find by dec')
    console.log(`('175', 'symbol') -> ${cp437.byDec('175', 'symbol')}`)
    console.log(`('155', 'hex') -> ${cp437.byDec('155', 'hex')}`)
    

    Output:

    // find by symbol
    ('£', 'hex') -> 9C
    ('£', 'dec') -> 156
    ('â', 'hex') -> 83
    
    // find by hex
    ('B0', 'symbol') -> ░
    ('EC', 'symbol') -> ∞
    
    // find by dec
    ('175', 'symbol') -> »
    ('155', 'hex') -> 9B