Documentation ¶
Overview ¶
Package charset implements data encoding schemes described in 3GPP TS 23.040. Such schemes include: GSM 7-Bit text encoding, UCS2 (UTF-16) text encoding, semi-octet encoding of integers.
Index ¶
- Constants
- Variables
- func Decode7Bit(octets []byte) (str string, err error)
- func DecodeSemi(octets []byte) []int
- func DecodeSemiAddress(octets []byte) (str string)
- func DecodeUcs2(octets []byte) (str string, err error)
- func Encode7Bit(str string) []byte
- func EncodeSemi(chunks ...uint64) []byte
- func EncodeUcs2(str string) []byte
- func IsGsmAlpha(str string) bool
- func Pack7Bit(raw7 []byte) []byte
- func ParseOddHexStr(hex string) ([]byte, error)
- func Unpack7Bit(pack7 []byte) []byte
Constants ¶
const ( // Esc code. Esc byte = 0x1B // Ctrl+Z code. Sub byte = 0x1A // <CR> code. CR byte = 0x0D )
Variables ¶
var ( // Common errors. ErrUnevenLength = errors.New("parse octets: uneven length of string") ErrUnexpected = errors.New("parse octets: met a non-HEX rune in string") // ErrUnexpectedByte happens when someone tries to decode non GSM 7-bit encoded string. ErrUnexpectedByte = errors.New("7bit decode: met an unexpected byte") )
var ErrUnevenNumber = errors.New("decode ucs2: uneven number of octets")
ErrUnevenNumber happens when the number of octets (bytes) in the input is uneven.
Functions ¶
func Decode7Bit ¶
Decode7Bit decodes the given GSM 7-bit octet data (3GPP TS 23.038) into a UTF-8 encoded string.
func DecodeSemi ¶
DecodeSemi unpacks numerical chunks from the given semi-octet encoded data.
func DecodeSemiAddress ¶
DecodeSemiAddress unpacks phone numbers from the given semi-octet encoded data. This method is different from DecodeSemi because a 0x00 byte should be interpreted as two distinct digits. There 0x00 will be "00".
func DecodeUcs2 ¶
DecodeUcs2 decodes the given UCS2 (UTF-16) octet data into a UTF-8 encoded string.
func Encode7Bit ¶
Encode7Bit encodes the given UTF-8 text into GSM 7-bit (3GPP TS 23.038) encoding.
func EncodeSemi ¶
EncodeSemi packs the given numerical chunks in a semi-octet representation as described in 3GPP TS 23.040.
func EncodeUcs2 ¶
EncodeUcs2 encodes the given UTF-8 text into UCS2 (UTF-16) encoding and returns the produced octets.
func IsGsmAlpha ¶
IsGsmAlpha returns true if the string contains only valid GSM 7-bit characters
func ParseOddHexStr ¶
parseOddHexStr parses the hex-string of odd length into bytes.
func Unpack7Bit ¶
Types ¶
This section is empty.