libnjb: /tmp/libnjb-2.2.5/src/unicode.c File Reference

- Main Page
- Modules
- Data Structures
- Files
- Directories
- Examples

- File List
- Globals

# unicode.c File Reference

`#include <stdlib.h>`
`#include <string.h>`
`#include <errno.h>`
`#include "libnjb.h"`
`#include "protocol.h"`
`#include "protocol3.h"`
`#include "unicode.h"`
`#include "njb_error.h"`
`#include "usb_io.h"`
`#include "ioutil.h"`
`#include "defs.h"`
`#include "base.h"`

## Defines
#define | MAX_STRING_LENGTH 512
## Functions
void | njb_set_unicode (int flag)
int | ucs2strlen (const unsigned char *unicstr)
char * | strtoutf8 (const unsigned char *str)
char * | utf8tostr (const unsigned char *str)
char * | ucs2tostr (const unsigned char *unicstr)
unsigned char * | strtoucs2 (const unsigned char *str)
## Variables
int | __sub_depth
int | njb_unicode_flag = NJB_UC_8859

## Detailed Description

This file contains general Unicode string manipulation functions. It mainly consist of functions for converting between UCS-2 (used on the devices), UTF-8 (used by several applications) and ISO 8859-1 / Codepage 1252 (fallback).

## Function Documentation

void njb_set_unicode | ( | int | flag | ) |

This flag determines whether to use ISO 8859-1 / codepage 1252 (default) or unicode UTF-8 for ALL strings sent into and out of libnjb, for ALL sessions and devices.

Parameters:

  | flag | 0 for ISO 8859-1 / codepage 1252 or 1 for Unicode UTF-8.

unsigned char* strtoucs2 | ( | const unsigned char * | str | ) |

Convert a simple ISO 8859-1 or a Unicode UTF8 string (depending on library Unicode flag) to a unicode UCS-2 string.

Parameters:

  | str | the ISO 8859-1 or UTF-8 string to conver

Returns:
  a pointer to a newly allocated UCS-2 string

char* strtoutf8 | ( | const unsigned char * | str | ) |

This function converts an ordinary ISO 8859-1 string to a unicode UTF-8 string

Parameters:

  | str | the ISO 8859-1 string to convert

Returns:
  a newly allocated UTF-8 encoded string with the same content. Should be freed after use.

int ucs2strlen | ( | const unsigned char * | unicstr | ) |

Gets the length (in characters, not bytes) of a unicode UCS-2 string, eg a string which physically is 0x00 0x41 0x00 0x00 will return a value of 1.

Parameters:

  | unicstr | a UCS-2 Unicode string

Returns:
  the length of the string, in number of characters. If you want to know the length in bytes, multiply this by two and add two (for zero terminator).

char* ucs2tostr | ( | const unsigned char * | unicstr | ) |

Converts a Unicode UCS-2 2-byte string to a common ISO 8859-1 string quick and dirty (japanese unicodes etc, that use all 16 bits will fail miserably)

Parameters:

  | unicstr | the UCS-2 unicode string to convert

Returns:
  a newly allocated ISO 8859-1 string that tries to resemble the UCS-2 string

char* utf8tostr | ( | const unsigned char * | str | ) |

This function approximates an ISO 8859-1 string from a UTF-8 string, leaving out untranslatable characters

Parameters:

  | str | the UTF-8 string to use as indata

Returns:
  a newly allocated ISO 8859-1 string which is as close a possible to the UTF-8 string.

## Variable Documentation

int __sub_depth

The current subroutine depth for all of libnjb (global)

int njb_unicode_flag = NJB_UC_8859

A flag for if unicode is used or not (global)