Main Page | Modules | Data Structures | Directories | File List | Data Fields | Globals | Examples

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)


Generated on Thu Oct 20 20:35:59 2005 for libnjb by  doxygen 1.4.4