Esempio n. 1
0
# -*- coding: utf-8 -*-
import re
import _codecs_jp, codecs
import _codecs_mobilejp

codec = _codecs_jp.getcodec('cp932')
codec_mobilejp = _codecs_mobilejp.getcodec('x_sjis_softbank')

WEBCODE_RE = re.compile(r'\x1b\x24([GEFOPQ])([\x20-\x7F]+)\x0f')

def _decode_webcode(matcher):
    high, chars = matcher.groups()
    high_bit = { 'G': 0xE000,
                 'E': 0xE100,
                 'F': 0xE200,
                 'O': 0xE300,
                 'P': 0xE400,
                 'Q': 0xE500,
                 }[high]
    buf = []
    for char in chars:
        buf.append(unichr(high_bit | ord(char) - 32).encode('cp932'))
    return ''.join(buf)

class Codec(codecs.Codec):
    encode = codec_mobilejp.encode

    def decode(self, input, errors='strict'):
        webcode = WEBCODE_RE.sub(_decode_webcode, input)
        if webcode == input:
            return codec_mobilejp.decode(input, errors)
Esempio n. 2
0
# -*- coding: utf-8 -*-
import _codecs_jp, codecs
import _codecs_mobilejp

codec = _codecs_jp.getcodec('cp932')
codec_mobilejp = _codecs_mobilejp.getcodec('x_sjis_docomo')

class Codec(codecs.Codec):
    decode = codec.decode
    encode = codec_mobilejp.encode

def getregentry():
    return codecs.CodecInfo(
        name='x_sjis_docomo',
        encode=Codec().encode,
        decode=Codec().decode,
        )


Esempio n. 3
0
# -*- coding: utf-8 -*-
import codecs
import _codecs_mobilejp

codec = _codecs_mobilejp.getcodec('x_sjis_kddi_raw')

class Codec(codecs.Codec):
    decode = codec.decode
    encode = codec.encode

def getregentry():
    return codecs.CodecInfo(
        name='x_sjis_kddi_raw',
        encode=Codec().encode,
        decode=Codec().decode,
        )


# -*- coding: utf-8 -*-
import re
import codecs
from math import ceil

import _codecs_mobilejp

codec = codecs.lookup('iso2022_jp_2')
mobilejp_codec = _codecs_mobilejp.getcodec('x_sjis_kddi')

ISO2022JP_SPLIT_RE = re.compile(r'(\x1b\x24\x42.+?\x1b\x28\x42)')

def _each_two_byte(value):
    for i in xrange(0, len(value), 2):
        part = value[i:i+2]
        if len(part) == 2:
            yield part


def _jis2sjis_one(x):
    return (_xy(x) << 8) + _zu(x)

def _xy(x):
    pq  = x >> 8
    t   = int(ceil(pq / 2.0)) + 0x70
    if t <= 0x9f:
        ans = t
    else:
        ans = t + 0x40

    if 0xed == ans or ans == 0xee: