# Unicode Functions

## Introduction

Unicode Support.

Warning

This extension is still in development and it isn't available to public yet.

## Requirements

» ICU 3.4 or later is required.

## Installation

First you should download and install ICU:

Example#1 install ICU on Unix

    ./configure --disable-threads --enable-extras --enable-icuio --enable-layout
    make && make install

Then checkout latest PHP and configure it --with-icu-dir=<dir> option, where <dir> was the dir to where you installed ICU. You don't need to explicitly use this option if you install ICU to a standard location.

## Runtime Configuration

The behaviour of these functions is affected by settings in php.ini.

Unicode Configuration Options
Name | Default | Changeable | Changelog
--- | --- | --- | ---
unicode.fallback_encoding | NULL | PHP_INI_ALL | Available since PHP 6.0.0.
unicode.from_error_mode | "2" | PHP_INI_ALL | Available since PHP 6.0.0.
unicode.from_error_subst_char | "3f" | PHP_INI_ALL | Available since PHP 6.0.0.
unicode.http_input_encoding | NULL | PHP_INI_ALL | Available since PHP 6.0.0.
unicode.output_encoding | NULL | PHP_INI_ALL | Available since PHP 6.0.0.
unicode.runtime_encoding | NULL | PHP_INI_ALL | Available since PHP 6.0.0.
unicode.script_encoding | NULL | PHP_INI_ALL | Available since PHP 6.0.0.
unicode.semantics | "0" | PHP_INI_SYSTEM | Available since PHP 6.0.0.

For further details and definitions of the PHP_INI_* constants, see the php.ini directives.

Here's a short explanation of the configuration directives.

`unicode.output_encoding` string

  Default encoding for output.

## Predefined Constants

The constants below are defined by this extension, and will only be available when the extension has either been compiled into PHP or dynamically loaded at runtime.

constant | value | description
--- | --- | ---
U_INVALID_STOP | 0 | stop at first invalid character
U_INVALID_SKIP | 1 | skip invalid characters
U_INVALID_SUBSTITUTE | 2 | replace invalid characters
U_INVALID_ESCAPE | 3 | escape invalid characters

## Table of Contents

- unicode_decode — Convert a binary string into a Unicode string
- unicode_encode — Convert a unicode string in any encoding
- unicode_get_error_mode — Get the error mode for strings conversions
- unicode_get_subst_char — Get the substitution character for string conversion errors
- unicode_semantics — Check whether unicode semantics is enabled
- unicode_set_error_mode — Set the error mode for strings conversions
- unicode_set_subst_char — Set the substitution character for string conversion errors