Version 2.2.2

This commit is contained in:
Neo committed 2025-12-19 00:24:35 -08:00
1 parent 22f1b963ee
commit a3bb603c96
858 files changed
+479463 -188140

No files matched your search

+1 -1
View File
@@ -833,4 +833,4 @@ class Text_Diff_Op_change extends Text_Diff_Op {
return $reverse = &new Text_Diff_Op_change($this->final, $this->orig);
}
}
}
@@ -205,4 +205,4 @@ class Text_Diff_Renderer {
return $this->_deleted($orig) . "---\n" . $this->_added($final);
}
}
}
@@ -136,4 +136,4 @@ class Text_Diff_Renderer_inline extends Text_Diff_Renderer {
return $words;
}
}
}
@@ -46,4 +46,4 @@ class Text_Diff_Renderer_unified extends Text_Diff_Renderer {
return $this->_deleted($orig) . $this->_added($final);
}
}
}
+1 -1
View File
@@ -256,4 +256,4 @@ class Text_Diff3_BlockBuilder {
array_splice($array, sizeof($array), 0, $lines);
}
}
}
+367
View File
@@ -0,0 +1,367 @@
<?php
/*
+--------------------------------------------------------------------------
| Invision Power Board 2.2.2
| =============================================
| by Matthew Mecham
| (c) 2001 - 2006 Invision Power Services, Inc.
| http://www.invisionpower.com
| =============================================
| Web: http://www.invisionboard.com
| http://www.ibresource.ru/products/invisionpowerboard/
| Time: Monday 05th of March 2007 10:10:55 PM
| Release: e3790216629e5a2aaf37070b32237f06
| Licence Info: http://www.invisionboard.com/?license
| http://www.ibresource.ru/license
+---------------------------------------------------------------------------
| INVISION POWER BOARD ÍÅ ßÂËßÅÒÑß ÁÅÑÏËÀÒÍÛÌ ÏÐÎÃÐÀÌÌÍÛÌ ÎÁÅÑÏÅ×ÅÍÈÅÌ!
| Ïðàâà íà ÏÎ ïðèíàäëåæàò Invision Power Services
| Ïðàâà íà ïåðåâîä IBResource (http://www.ibresource.ru)
+---------------------------------------------------------------------------
| > $Date: 2006-08-01 17:02:55 +0100 (Tue, 01 Aug 2006) $
| > $Revision: 425 $
| > $Author: matt $
+---------------------------------------------------------------------------
|
| > AJAX Functions
| > Module written by Matt Mecham
| > Date started: Wednesday 2nd August 2006
|
+--------------------------------------------------------------------------
*/
class class_ajax
{
/**
* Global IPS class
*/
var $ipsclass;
/**
* XML output
*/
var $xml_output;
/**
* XML Header
*/
var $xml_header;
/**
* Character sets
*/
var $decode_charsets = array( 'iso-8859-1' => 'ISO-8859-1',
'iso8859-1' => 'ISO-8859-1',
'iso-8859-15' => 'ISO-8859-15',
'iso8859-15' => 'ISO-8859-15',
'utf-8' => 'UTF-8',
'cp866' => 'cp866',
'ibm866' => 'cp866',
'cp1251' => 'windows-1251',
'windows-1251' => 'windows-1251',
'win-1251' => 'windows-1251',
'cp1252' => 'windows-1252',
'windows-1252' => 'windows-1252',
'koi8-r' => 'KOI8-R',
'koi8-ru' => 'KOI8-R',
'koi8r' => 'KOI8-R',
'big5' => 'BIG5',
'gb2312' => 'GB2312',
'big5-hkscs' => 'BIG5-HKSCS',
'shift_jis' => 'Shift_JIS',
'sjis' => 'Shift_JIS',
'euc-jp' => 'EUC-JP',
'eucjp' => 'EUC-JP' );
/*-------------------------------------------------------------------------*/
// Initialize the class
/*-------------------------------------------------------------------------*/
/**
* INIT the class
*/
function class_init()
{
$this->xml_header = "<?xml version=\"1.0\" encoding=\"{$this->ipsclass->vars['gb_char_set']}\"?".'>';
}
/*-------------------------------------------------------------------------*/
// Convert and make safe an incoming string
/*-------------------------------------------------------------------------*/
/**
* Convert and make safe an incoming string
*/
function convert_and_make_safe( $value )
{
$value = rawurldecode( $value );
$value = $this->convert_unicode( $value );
$value = $this->convert_html_entities( $value );
$value = $this->ipsclass->parse_clean_value( $value );
return $value;
}
/*-------------------------------------------------------------------------*/
// make string XML safe
/*-------------------------------------------------------------------------*/
/**
* Make a string safe for XML transport
*/
function _make_safe_for_xml( $t )
{
return str_replace( '&amp;#39;', '&#39;', htmlspecialchars( $t ) );
}
/*-------------------------------------------------------------------------*/
// Error handler
/*-------------------------------------------------------------------------*/
/**
* Print an error
*/
function error_handler()
{
@header( "Content-type: text/xml;charset={$this->ipsclass->vars['gb_char_set']}" );
$this->print_nocache_headers();
$this->xml_output = $this->xml_header."\r\n<errors>\r\n";
$this->xml_output .= "<error><message>Âû íå àâòîðèçîâàíû</message></error>\r\n";
$this->xml_output .= "</errors>";
print $this->xml_output;
exit();
}
/*-------------------------------------------------------------------------*/
// Return NOTHING :o
/*-------------------------------------------------------------------------*/
/**
* Return a NULL result
*/
function return_null($val=0)
{
@header( "Content-type: text/xml" );
$this->print_nocache_headers();
print $this->xml_header."\r\n<null>{$val}</null>";
exit();
}
/*-------------------------------------------------------------------------*/
// Return string
/*-------------------------------------------------------------------------*/
/**
* Return a string
*/
function return_string($string)
{
@header( "Content-type: text/plain;charset={$this->ipsclass->vars['gb_char_set']}" );
$this->print_nocache_headers();
print $string;
exit();
}
/*-------------------------------------------------------------------------*/
// Return HTML
/*-------------------------------------------------------------------------*/
/**
* Return a HTML
*/
function return_html($string)
{
//-----------------------------------------
// Stop one from removing cookie protection
//-----------------------------------------
$string = ( $string ) ? $string : '<!--nothing-->';
$string = preg_replace( "#htmldocument\.prototype#is", "HTMLDocument_prototype", $string );
// Fix IE bugs
$string = str_replace( "&sect", "&amp;sect", $string );
if ( strtolower( $this->ipsclass->vars['gb_char_set'] ) == 'iso-8859-1' )
{
$string = str_replace( "ì", "&#8220;", $string );
$string = str_replace( "î", "&#8221;", $string );
}
// Other stuff
$string = str_replace( "<#IMG_DIR#>", $this->ipsclass->skin['_imagedir'], $string );
$string = str_replace( "<#EMO_DIR#>", $this->ipsclass->skin['_emodir'] , $string );
@header( "Content-type: text/html;charset=".$this->ipsclass->vars['gb_char_set'] );
$this->print_nocache_headers();
print $string;
exit();
}
/*-------------------------------------------------------------------------*/
// Print no cache headers
/*-------------------------------------------------------------------------*/
/**
* Print nocache headers
*/
function print_nocache_headers()
{
header("HTTP/1.0 200 OK");
header("HTTP/1.1 200 OK");
header("Cache-Control: no-cache, must-revalidate, max-age=0");
header("Expires: 0");
header("Pragma: no-cache");
}
/*-------------------------------------------------------------------------*/
// Convert decimal character references to UTF-8
/*-------------------------------------------------------------------------*/
/**
* Convert a decimal character to UTF-8
*/
function dec_char_ref_to_utf8($int=0)
{
$return = '';
if ( $int < 0 )
{
return chr(0);
}
else if ( $int <= 0x007f )
{
$return .= chr($int);
}
else if ( $int <= 0x07ff )
{
$return .= chr(0xc0 | ($int >> 6));
$return .= chr(0x80 | ($int & 0x003f));
}
else if ( $int <= 0xffff )
{
$return .= chr(0xe0 | ($int >> 12));
$return .= chr(0x80 | (($int >> 6) & 0x003f));
$return .= chr(0x80 | ($int & 0x003f));
}
else if ( $int <= 0x10ffff )
{
$return .= chr(0xf0 | ($int >> 18));
$return .= chr(0x80 | (($int >> 12) & 0x3f));
$return .= chr(0x80 | (($int >> 6) & 0x3f));
$return .= chr(0x80 | ($int & 0x3f));
}
else
{
return chr(0);
}
return $return;
}
/*-------------------------------------------------------------------------*/
// Helper function
/*-------------------------------------------------------------------------*/
function dec_char_ref_to_utf8_hexdec( $matches )
{
return $this->dec_char_ref_to_utf8( hexdec( $matches[1] ) );
}
/*-------------------------------------------------------------------------*/
// Convert Ajax unicode
/*-------------------------------------------------------------------------*/
function convert_unicode($t)
{
/*if ( strtolower($this->ipsclass->vars['gb_char_set']) == 'utf-8' )
{
return preg_replace_callback( '#%u([0-9A-F]{1,4})#i', array( &$this, 'dec_char_ref_to_utf8_hexdec' ), utf8_encode($t) );
}
else
{
return preg_replace_callback( '#%u([0-9A-F]{1,4})#i', create_function( '$matches', "return '&#' . hexdec(\$matches[1]) . ';';" ), $t );
}*/
// Javascript escape function always sends unicode
$text = preg_replace_callback( '#%u([0-9A-F]{1,4})#i', array( &$this, 'dec_char_ref_to_utf8_hexdec' ), utf8_encode($t) );
if ( strtolower($this->ipsclass->vars['gb_char_set']) != 'utf-8' )
{
$text = $this->ipsclass->txt_convert_charsets( $text, 'UTF-8' );
}
return $text ? $text : $t;
}
/**
* Convert HTML entities and respect character sets
*/
function convert_html_entities($t)
{
//-----------------------------------------
// Try and fix up HTML entities with missing ;
//-----------------------------------------
$t = preg_replace( "/&#(\d+?)([^\d;])/i", "&#\\1;\\2", $t );
//-----------------------------------------
// Continue...
//-----------------------------------------
if ( strtolower($this->ipsclass->vars['gb_char_set']) != 'iso-8859-1' &&
strtolower($this->ipsclass->vars['gb_char_set']) != 'utf-8' )
{
if ( array_key_exists( strtolower($this->ipsclass->vars['gb_char_set']), $this->decode_charsets ) )
{
$this->ipsclass->vars['gb_char_set'] = $this->decode_charsets[strtolower($this->ipsclass->vars['gb_char_set'])];
$t = html_entity_decode( $t, ENT_NOQUOTES, $this->ipsclass->vars['gb_char_set'] );
}
else
{
// Take a crack at entities in other character sets
$t = str_replace( "&amp;#", "&#", $t );
// If mb functions available, we can knock out html entities for a few more char sets
if( function_exists('mb_list_encodings') )
{
// PHP 5, preferred method
$valid_encodings = array();
$valid_encodings = mb_list_encodings();
if( count($valid_encodings) )
{
if( in_array( strtoupper($this->ipsclass->vars['gb_char_set']), $valid_encodings ) )
{
$t = mb_convert_encoding( $t, strtoupper($this->ipsclass->vars['gb_char_set']), 'HTML-ENTITIES' );
}
}
}
else if( function_exists('mb_convert_encoding') )
{
// PHP 4 support
// Though this is quite tedious, let's check to see if encoding is supported....
// http://us2.php.net/manual/en/ref.mbstring.php
$valid_encodings = array( 'UCS-4', 'UCS-4BE', 'UCS-4LE', 'UCS-2', 'UCS-2BE', 'UCS-2LE', 'UTF-32', 'UTF-32BE',
'UTF-32LE', 'UTF-16', 'UTF-16BE', 'UTF-16LE', 'UTF-7', 'UTF7-IMAP', 'UTF-8',
'ASCII', 'EUC-JP', 'SJIS', 'EUCJP-WIN', 'SJIS-WIN', 'ISO-2022-JP', 'JIS', 'ISO-8859-1',
'ISO-8859-2', 'ISO-8859-3', 'ISO-8859-4', 'ISO-8859-5', 'ISO-8859-6', 'ISO-8859-7',
'ISO-8859-8', 'ISO-8859-9', 'ISO-8859-10', 'ISO-8859-13', 'ISO-8859-14', 'ISO-8859-15',
'EUC-CN', 'CP936', 'EUC-TW', 'HZ', 'CP950', 'BIG-5', 'EUC-KR', 'CP949', 'ISO-2022-KR',
'WINDOWS-1251', 'CP1251', 'WINDOWS-1252', 'CP1252', 'CP866', 'KOI8-R' );
if( in_array( strtoupper($this->ipsclass->vars['gb_char_set']), $valid_encodings ) )
{
$t = mb_convert_encoding( $t, strtoupper($this->ipsclass->vars['gb_char_set']), 'HTML-ENTITIES' );
}
}
}
}
return $t;
}
}
?>
+14 -4
View File
@@ -2,16 +2,26 @@
/*
+---------------------------------------------------------------------------
| Invision Power Board 2.2.2
| Invision Power KERNEL
| Invision Power Board
| ========================================
| by Matthew Mecham
| (c) 2006 Invision Power Services
| http://www.invisionpower.com
| ========================================
| =============================================
| Web: http://www.invisionboard.com
| http://www.ibresource.ru/products/invisionpowerboard/
| Time: Monday 05th of March 2007 10:10:55 PM
| Release: e3790216629e5a2aaf37070b32237f06
| Licence Info: http://www.invisionboard.com/?license
| http://www.ibresource.ru/license
+---------------------------------------------------------------------------
| INVISION POWER BOARD IS NOT FREE SOFTWARE!
| http://www.invisionboard.com
| INVISION POWER BOARD IS NOT FREE / OPEN SOURCE!
+---------------------------------------------------------------------------
| INVISION POWER BOARD ÍÅ ßÂËßÅÒÑß ÁÅÑÏËÀÒÍÛÌ ÏÐÎÃÐÀÌÌÍÛÌ ÎÁÅÑÏÅ×ÅÍÈÅÌ!
| Ïðàâà íà ÏÎ ïðèíàäëåæàò Invision Power Services
| Ïðàâà íà ïåðåâîä IBResource (http://www.ibresource.ru)
+---------------------------------------------------------------------------
|
| > API SERVER: Send and receive API data
@@ -260,7 +270,7 @@ class class_api_server
// Return false
//-----------------------------------------
$this->api_send_error( 100, 'No methodRequest function -' . $this->method_name . 'defined / found' );
$this->api_send_error( 100, 'No methodRequest function -' . htmlspecialchars( $this->method_name ) . 'defined / found' );
exit();
}
}
+111
View File
@@ -0,0 +1,111 @@
<?php
/*
+--------------------------------------------------------------------------
| Invision Power Services Kernel [Cache Abstraction]
| Invision Power Board 2.2.2
| =============================================
| by Matthew Mecham
| (c) 2001 - 2006 Invision Power Services, Inc.
| http://www.invisionpower.com
| =============================================
| Web: http://www.invisionboard.com
| http://www.ibresource.ru/products/invisionpowerboard/
| Time: Monday 05th of March 2007 10:10:55 PM
| Release: e3790216629e5a2aaf37070b32237f06
| Licence Info: http://www.invisionboard.com/?license
| http://www.ibresource.ru/license
+---------------------------------------------------------------------------
| INVISION POWER BOARD IS NOT FREE / OPEN SOURCE!
+---------------------------------------------------------------------------
| INVISION POWER BOARD ÍÅ ßÂËßÅÒÑß ÁÅÑÏËÀÒÍÛÌ ÏÐÎÃÐÀÌÌÍÛÌ ÎÁÅÑÏÅ×ÅÍÈÅÌ!
| Ïðàâà íà ÏÎ ïðèíàäëåæàò Invision Power Services
| Ïðàâà íà ïåðåâîä IBResource (http://www.ibresource.ru)
+---------------------------------------------------------------------------
|
| > Core Module
| > Module written by Brandon Farber
| > Date started: Friday 19th May 2006 17:33
|
| > Module Version Number: 1.0
+--------------------------------------------------------------------------
*/
/**
* IPS Kernel Pages: Cache Object Core
* -- APC Cache Storage
*
* Basic Usage Examples
* <code>
* $cache = new cache_lib( 'identifier' );
* Update:
* $db->do_put( 'key', 'value' [, 'ttl'] );
* Remove
* $db->do_remove( 'key' );
* Retrieve
* $db->do_get( 'key' );
* </code>
*
* @package IPS_KERNEL
* @subpackage Cache Abstraction
* @author Brandon Mecham
* @version 1.0
*/
class cache_lib
{
var $identifier;
var $crashed = 0;
function cache_lib( $identifier='' )
{
if( !function_exists('apc_fetch') )
{
$this->crashed = 1;
return FALSE;
}
if( !$identifier )
{
$this->identifier = md5( uniqid( rand(), TRUE ) );
}
else
{
$this->identifier = $identifier;
}
unset( $identifier );
}
function disconnect()
{
return TRUE;
}
function do_put( $key, $value, $ttl=0 )
{
$ttl = $ttl > 0 ? intval($ttl) : 0;
apc_store( md5( $this->identifier . $key ),
$value,
$ttl );
}
function do_get( $key )
{
$return_val = "";
$return_val = apc_fetch( md5( $this->identifier . $key ) );
return $return_val;
}
function do_remove( $key )
{
apc_delete( md5( $this->identifier . $key ) );
}
}
?>
+9 -2
View File
@@ -2,15 +2,22 @@
/*
+--------------------------------------------------------------------------
| Invision Power Services Kernel [Cache Abstraction]
| Invision Power Board
| Invision Power Board 2.2.2
| =============================================
| by Matthew Mecham
| (c) 2001 - 2006 Invision Power Services, Inc.
| http://www.invisionpower.com
| =============================================
| Web: http://www.invisionboard.com
| http://www.ibresource.ru/products/invisionpowerboard/
| Time: Monday 05th of March 2007 10:10:55 PM
| Release: e3790216629e5a2aaf37070b32237f06
| Licence Info: http://www.invisionboard.com/?license
| http://www.ibresource.ru/license
+---------------------------------------------------------------------------
| THIS IS NOT FREE / OPEN SOURCE SOFTWARE
| INVISION POWER BOARD ÍÅ ßÂËßÅÒÑß ÁÅÑÏËÀÒÍÛÌ ÏÐÎÃÐÀÌÌÍÛÌ ÎÁÅÑÏÅ×ÅÍÈÅÌ!
| Ïðàâà íà ÏÎ ïðèíàäëåæàò Invision Power Services
| Ïðàâà íà ïåðåâîä IBResource (http://www.ibresource.ru)
+---------------------------------------------------------------------------
|
| > Core Module
@@ -2,15 +2,22 @@
/*
+--------------------------------------------------------------------------
| Invision Power Services Kernel [Cache Abstraction]
| Invision Power Board
| Invision Power Board 2.2.2
| =============================================
| by Matthew Mecham
| (c) 2001 - 2006 Invision Power Services, Inc.
| http://www.invisionpower.com
| =============================================
| Web: http://www.invisionboard.com
| http://www.ibresource.ru/products/invisionpowerboard/
| Time: Monday 05th of March 2007 10:10:55 PM
| Release: e3790216629e5a2aaf37070b32237f06
| Licence Info: http://www.invisionboard.com/?license
| http://www.ibresource.ru/license
+---------------------------------------------------------------------------
| THIS IS NOT FREE / OPEN SOURCE SOFTWARE
| INVISION POWER BOARD ÍÅ ßÂËßÅÒÑß ÁÅÑÏËÀÒÍÛÌ ÏÐÎÃÐÀÌÌÍÛÌ ÎÁÅÑÏÅ×ÅÍÈÅÌ!
| Ïðàâà íà ÏÎ ïðèíàäëåæàò Invision Power Services
| Ïðàâà íà ïåðåâîä IBResource (http://www.ibresource.ru)
+---------------------------------------------------------------------------
|
| > Core Module
+9 -2
View File
@@ -2,15 +2,22 @@
/*
+--------------------------------------------------------------------------
| Invision Power Services Kernel [Cache Abstraction]
| Invision Power Board
| Invision Power Board 2.2.2
| =============================================
| by Matthew Mecham
| (c) 2001 - 2006 Invision Power Services, Inc.
| http://www.invisionpower.com
| =============================================
| Web: http://www.invisionboard.com
| http://www.ibresource.ru/products/invisionpowerboard/
| Time: Monday 05th of March 2007 10:10:55 PM
| Release: e3790216629e5a2aaf37070b32237f06
| Licence Info: http://www.invisionboard.com/?license
| http://www.ibresource.ru/license
+---------------------------------------------------------------------------
| THIS IS NOT FREE / OPEN SOURCE SOFTWARE
| INVISION POWER BOARD ÍÅ ßÂËßÅÒÑß ÁÅÑÏËÀÒÍÛÌ ÏÐÎÃÐÀÌÌÍÛÌ ÎÁÅÑÏÅ×ÅÍÈÅÌ!
| Ïðàâà íà ÏÎ ïðèíàäëåæàò Invision Power Services
| Ïðàâà íà ïåðåâîä IBResource (http://www.ibresource.ru)
+---------------------------------------------------------------------------
|
| > Core Module
+9 -2
View File
@@ -2,15 +2,22 @@
/*
+--------------------------------------------------------------------------
| Invision Power Services Kernel [Cache Abstraction]
| Invision Power Board
| Invision Power Board 2.2.2
| =============================================
| by Matthew Mecham
| (c) 2001 - 2006 Invision Power Services, Inc.
| http://www.invisionpower.com
| =============================================
| Web: http://www.invisionboard.com
| http://www.ibresource.ru/products/invisionpowerboard/
| Time: Monday 05th of March 2007 10:10:55 PM
| Release: e3790216629e5a2aaf37070b32237f06
| Licence Info: http://www.invisionboard.com/?license
| http://www.ibresource.ru/license
+---------------------------------------------------------------------------
| THIS IS NOT FREE / OPEN SOURCE SOFTWARE
| INVISION POWER BOARD ÍÅ ßÂËßÅÒÑß ÁÅÑÏËÀÒÍÛÌ ÏÐÎÃÐÀÌÌÍÛÌ ÎÁÅÑÏÅ×ÅÍÈÅÌ!
| Ïðàâà íà ÏÎ ïðèíàäëåæàò Invision Power Services
| Ïðàâà íà ïåðåâîä IBResource (http://www.ibresource.ru)
+---------------------------------------------------------------------------
|
| > Core Module
+120
View File
@@ -0,0 +1,120 @@
<?php
/*
+--------------------------------------------------------------------------
| Invision Power Services Kernel [Cache Abstraction]
| Invision Power Board 2.2.2
| =============================================
| by Matthew Mecham
| (c) 2001 - 2006 Invision Power Services, Inc.
| http://www.invisionpower.com
| =============================================
| Web: http://www.invisionboard.com
| http://www.ibresource.ru/products/invisionpowerboard/
| Time: Monday 05th of March 2007 10:10:55 PM
| Release: e3790216629e5a2aaf37070b32237f06
| Licence Info: http://www.invisionboard.com/?license
| http://www.ibresource.ru/license
+---------------------------------------------------------------------------
| INVISION POWER BOARD ÍÅ ßÂËßÅÒÑß ÁÅÑÏËÀÒÍÛÌ ÏÐÎÃÐÀÌÌÍÛÌ ÎÁÅÑÏÅ×ÅÍÈÅÌ!
| Ïðàâà íà ÏÎ ïðèíàäëåæàò Invision Power Services
| Ïðàâà íà ïåðåâîä IBResource (http://www.ibresource.ru)
+---------------------------------------------------------------------------
|
| > Core Module
| > Module written by Brandon Farber
| > Date started: Friday 19th May 2006 17:33
|
| > Module Version Number: 1.0
+--------------------------------------------------------------------------
*/
/**
* IPS Kernel Pages: Cache Object Core
* -- XCache Cache Storage
*
* Basic Usage Examples
* <code>
* $cache = new cache_lib( 'identifier' );
* Update:
* $db->do_put( 'key', 'value' [, 'ttl'] );
* Remove
* $db->do_remove( 'key' );
* Retrieve
* $db->do_get( 'key' );
* </code>
*
* @package IPS_KERNEL
* @subpackage Cache Abstraction
* @author Brandon Mecham
* @version 1.0
*/
class cache_lib
{
var $identifier;
var $crashed = 0;
function cache_lib( $identifier='' )
{
if( !function_exists('xcache_get') )
{
$this->crashed = 1;
return FALSE;
}
if( !$identifier )
{
$this->identifier = md5( uniqid( rand(), TRUE ) );
}
else
{
$this->identifier = $identifier;
}
unset( $identifier );
}
function disconnect()
{
return TRUE;
}
function do_put( $key, $value, $ttl=0 )
{
$ttl = $ttl > 0 ? intval($ttl) : '';
if( $ttl )
{
xcache_set( md5( $this->identifier . $key ),
$value,
$ttl );
}
else
{
xcache_set( md5( $this->identifier . $key ),
$value );
}
}
function do_get( $key )
{
$return_val = "";
if( xcache_isset( md5( $this->identifier . $key ) ) )
{
$return_val = xcache_get( md5( $this->identifier . $key ) );
}
return $return_val;
}
function do_remove( $key )
{
xcache_unset( md5( $this->identifier . $key ) );
}
}
?>
+741
View File
@@ -0,0 +1,741 @@
<?php
/*
+--------------------------------------------------------------------------
| Invision Power Board 2.2.2
| =============================================
| by Matthew Mecham
| (c) 2001 - 2006 Invision Power Services, Inc.
| http://www.invisionpower.com
| =============================================
| Web: http://www.invisionboard.com
| http://www.ibresource.ru/products/invisionpowerboard/
| Time: Monday 05th of March 2007 10:10:55 PM
| Release: e3790216629e5a2aaf37070b32237f06
| Licence Info: http://www.invisionboard.com/?license
| http://www.ibresource.ru/license
+---------------------------------------------------------------------------
| INVISION POWER BOARD ÍÅ ßÂËßÅÒÑß ÁÅÑÏËÀÒÍÛÌ ÏÐÎÃÐÀÌÌÍÛÌ ÎÁÅÑÏÅ×ÅÍÈÅÌ!
| Ïðàâà íà ÏÎ ïðèíàäëåæàò Invision Power Services
| Ïðàâà íà ïåðåâîä IBResource (http://www.ibresource.ru)
+---------------------------------------------------------------------------
| > $Id$
| > $Revision: 128 $
| > $Date: 2006-01-20 12:46:26 +0000 (Fri, 20 Jan 2006) $
+---------------------------------------------------------------------------
|
| > CAPTCHA ANTI-SPAM CLASS
| > Script written by Matt Mecham
| > Date started: Thursday 2 February (11:08)
|
+---------------------------------------------------------------------------
*/
/**
* CAPTCHA CLASS
* ipsclass dependent method of showing an anti-spam image
*
* This creates a unique MD5 hash and stores it in the DB with
* an 8 character string of 0-9a-z
*
* <code>
* CREATE TABLE captcha (
* captcha_unique_id VARCHAR(32) NOT NULL default '',
* captcha_string VARCHAR(100) NOT NULL default '',
* captcha_ipaddress VARCHAR(16) NOT NULL default '',
* captcha_date INT(10) NOT NULL default '',
* PRIMARY KEY (captcha_unique_id )
* );
* </code>
* @package IPDYNAMIC
* @author Matt Mecham
* @copyright Invision Power Services, Inc.
* @version 1.0
*/
class class_captcha
{
/**
* Global IPS class array
* @var object
*/
var $ipsclass;
/**
* GD version
* @var integer
*/
var $gd_version = 0;
/**
* Backgrounds path
* @var string
*/
var $path_background = '';
/**
* Fonts path
* @var string
*/
var $path_fonts = '';
/*-------------------------------------------------------------------------*/
// Initializes captcha session
/*-------------------------------------------------------------------------*/
/**
* Initializes captcha session
* Clears out "dead" entries, adds new row and returns
* unique ID for use in an image
*
* @return string Captcha unique ID
*/
function captcha_create_session()
{
//-----------------------------------------
// Clear old
//-----------------------------------------
$this->captcha_clear_sessions( $this->ipsclass->ip_address );
//-----------------------------------------
// Create new ID
//-----------------------------------------
$captcha_unique_id = md5( uniqid( time() ) );
$captcha_string = "";
//-----------------------------------------
// Create new string
//-----------------------------------------
mt_srand( (double) microtime() * 1000000 );
$final_rand = md5( uniqid( mt_rand(), TRUE ) );
mt_srand();
for( $i = 0; $i < 6; $i++ )
{
$captcha_string .= $final_rand{ mt_rand(0, 31) };
}
//-----------------------------------------
// Add to the DB
//-----------------------------------------
$this->ipsclass->DB->do_insert( 'captcha', array( 'captcha_unique_id' => $captcha_unique_id,
'captcha_string' => $captcha_string,
'captcha_ipaddress' => $this->ipsclass->ip_address,
'captcha_date' => time() ) );
//-----------------------------------------
// Return ID
//-----------------------------------------
return $captcha_unique_id;
}
/*-------------------------------------------------------------------------*/
// Captcha validate
/*-------------------------------------------------------------------------*/
/**
* Show the captcha bot image
*
* @param string captcha_unique_id The captcha DB row
* @param string captcha_input The user entered data
* @return void
* @since 1.0
*/
function captcha_validate( $captcha_unique_id, $captcha_input )
{
//-----------------------------------------
// INIT
//-----------------------------------------
$captcha_input = trim( strtolower($captcha_input) );
//-----------------------------------------
// Get the info from the DB
//-----------------------------------------
$captcha = $this->ipsclass->DB->build_and_exec_query( array( 'select' => '*',
'from' => 'captcha',
'where' => "captcha_unique_id='".$captcha_unique_id."'" ) );
if ( ! $captcha['captcha_unique_id'] )
{
return FALSE;
}
//-----------------------------------------
// Check...
//-----------------------------------------
if ( $captcha['captcha_string'] != $captcha_input )
{
return FALSE;
}
else
{
return TRUE;
}
}
/*-------------------------------------------------------------------------*/
// Captcha show image
/*-------------------------------------------------------------------------*/
/**
* Show the captcha bot image
*
* @param string captcha_unique_id
* @return void
* @since 1.0
*/
function captcha_show_image( $captcha_unique_id )
{
//-----------------------------------------
// CHECK
//-----------------------------------------
if ( ! $captcha_unique_id )
{
return FALSE;
}
//-----------------------------------------
// Get the info from the DB
//-----------------------------------------
$captcha = $this->ipsclass->DB->build_and_exec_query( array( 'select' => '*',
'from' => 'captcha',
'where' => "captcha_unique_id='".$captcha_unique_id."'" ) );
if ( ! $captcha['captcha_unique_id'] )
{
return FALSE;
}
//-----------------------------------------
// Show it...
//-----------------------------------------
$this->captcha_show_gd_img( $captcha['captcha_string'] );
}
/*-------------------------------------------------------------------------*/
// Show GD created security image...
/*-------------------------------------------------------------------------*/
/**
* Show anti-spam bot GD image numbers
*
* @param string Number string
* @return void
* @since 1.0
*/
function captcha_show_gd_img( $content="" )
{
//-----------------------------------------
// Is GD Available?
//-----------------------------------------
if( !extension_loaded('gd') )
{
exit();
}
//-----------------------------------------
// INIT
//-----------------------------------------
$content = ' '. preg_replace( "/(\w)/", "\\1 ", $content ) .' ';
$allow_fonts = isset( $this->ipsclass->vars['captcha_allow_fonts'] ) ? $this->ipsclass->vars['captcha_allow_fonts'] : 1;
$use_fonts = 0;
$tmp_x = 135;
$tmp_y = 20;
$image_x = 200;
$image_y = 60;
$circles = 3;
$continue_loop = TRUE;
$_started = FALSE;
//-----------------------------------------
// Get backgrounds and fonts...
//-----------------------------------------
$backgrounds = $this->_captcha_show_gd_img_get_backgrounds();
$fonts = $this->_captcha_show_gd_img_get_fonts();
//-----------------------------------------
// Seed rand functions for PHP versions that don't
//-----------------------------------------
mt_srand( (double) microtime() * 1000000 );
//-----------------------------------------
// Got a background?
//-----------------------------------------
if ( $this->ipsclass->vars['gd_version'] > 1 )
{
while ( $continue_loop )
{
if ( is_array( $backgrounds ) AND count( $backgrounds ) )
{
$i = mt_rand(0, count( $backgrounds ) - 1 );
$background = $backgrounds[ $i ];
$_file_extension = preg_replace( "#^.*\.(\w{2,4})$#is", "\\1", strtolower( $background ) );
switch( $_file_extension )
{
case 'jpg':
case 'jpe':
case 'jpeg':
if ( ! function_exists('imagecreatefromjpeg') OR ! $im = @imagecreatefromjpeg($background) )
{
unset( $backgrounds[ $i ] );
}
else
{
$continue_loop = FALSE;
$_started = TRUE;
}
break;
case 'gif':
if ( ! function_exists('imagecreatefromgif') OR ! $im = @imagecreatefromgif($background) )
{
unset( $backgrounds[ $i ] );
}
else
{
$continue_loop = FALSE;
$_started = TRUE;
}
break;
case 'png':
if ( ! function_exists('imagecreatefrompng') OR ! $im = @imagecreatefrompng($background) )
{
unset( $backgrounds[ $i ] );
}
else
{
$continue_loop = FALSE;
$_started = TRUE;
}
break;
}
}
else
{
$continue_loop = FALSE;
}
}
}
//-----------------------------------------
// Still not got one? DO OLD FASHIONED
//-----------------------------------------
if ( $_started !== TRUE )
{
if ( $this->ipsclass->vars['gd_version'] == 1 )
{
$im = imagecreate($image_x, $image_y);
$tmp = imagecreate($tmp_x, $tmp_y);
}
else
{
$im = imagecreatetruecolor($image_x, $image_y);
$tmp = imagecreatetruecolor($tmp_x, $tmp_y);
}
$white = ImageColorAllocate($tmp, 255, 255, 255);
$black = ImageColorAllocate($tmp, 0, 0, 0);
$grey = ImageColorAllocate($tmp, 200, 200, 200 );
imagefill($tmp, 0, 0, $white);
for ( $i = 1; $i <= $circles; $i++ )
{
$values = array(
0 => rand(0, $tmp_x - 10),
1 => rand(0, $tmp_y - 3),
2 => rand(0, $tmp_x - 10),
3 => rand(0, $tmp_y - 3),
4 => rand(0, $tmp_x - 10),
5 => rand(0, $tmp_y - 3),
6 => rand(0, $tmp_x - 10),
7 => rand(0, $tmp_y - 3),
8 => rand(0, $tmp_x - 10),
9 => rand(0, $tmp_y - 3),
10 => rand(0, $tmp_x - 10),
11 => rand(0, $tmp_y - 3),
);
$randomcolor = imagecolorallocate( $tmp, rand(100,255), rand(100,255),rand(100,255) );
imagefilledpolygon($tmp, $values, 6, $randomcolor );
}
$num = strlen($content);
$x_param = 0;
$y_param = 0;
for( $i = 0; $i < $num; $i++ )
{
$x_param += rand(-1,12);
$y_param = rand(-3,8);
if( $x_param + 18 > $image_x )
{
$x_param -= ceil( $x_param + 18 - $image_x );
}
$randomcolor = imagecolorallocate( $tmp, rand(0,150), rand(0,150),rand(0,150) );
imagestring($tmp, 5, $x_param+1, $y_param+1, $content{$i}, $grey);
imagestring($tmp, 5, $x_param, $y_param, $content{$i}, $randomcolor);
}
//-----------------------------------------
// Distort by resizing
//-----------------------------------------
imagecopyresized($im, $tmp, 0, 0, 0, 0, $image_x, $image_y, $tmp_x, $tmp_y);
imagedestroy($tmp);
//-----------------------------------------
// Background dots and lines
//-----------------------------------------
$random_pixels = $image_x * $image_y / 10;
for ($i = 0; $i < $random_pixels; $i++)
{
$randomcolor = imagecolorallocate( $im, rand(0,150), rand(0,150),rand(0,150) );
ImageSetPixel($im, rand(0, $image_x), rand(0, $image_y), $randomcolor);
}
$no_x_lines = ($image_x - 1) / 5;
for ( $i = 0; $i <= $no_x_lines; $i++ )
{
ImageLine( $im, $i * $no_x_lines, 0, $i * $no_x_lines, $image_y, $grey );
ImageLine( $im, $i * $no_x_lines, 0, ($i * $no_x_lines)+$no_x_lines, $image_y, $grey );
}
$no_y_lines = ($image_y - 1) / 5;
for ( $i = 0; $i <= $no_y_lines; $i++ )
{
ImageLine( $im, 0, $i * $no_y_lines, $image_x, $i * $no_y_lines, $grey );
}
}
else
{
//-----------------------------------------
// Can we use fonts?
//-----------------------------------------
if ( $allow_fonts AND function_exists('imagettftext') AND is_array( $fonts ) AND count( $fonts ) )
{
if ( function_exists('imageantialias') )
{
imageantialias( $im, TRUE );
}
$num = strlen($content);
$x_param = -18;
$y_param = 0;
$_font = $fonts[ mt_rand( 0, count( $fonts ) - 1 ) ];
for( $i = 0; $i < $num; $i++ )
{
$y_param = rand( 35, 48 );
# Main color
$col_r = rand(50,200);
$col_g = rand(0,150);
$col_b = rand(50,200);
# High light
$col_r_l = ( $col_r + 50 > 255 ) ? 255 : $col_r + 50;
$col_g_l = ( $col_g + 50 > 255 ) ? 255 : $col_g + 50;
$col_b_l = ( $col_b + 50 > 255 ) ? 255 : $col_b + 50;
# Low light
$col_r_d = ( $col_r - 50 < 0 ) ? 0 : $col_r - 50;
$col_g_d = ( $col_g - 50 < 0 ) ? 0 : $col_g - 50;
$col_b_d = ( $col_b - 50 < 0 ) ? 0 : $col_b - 50;
$color_main = imagecolorallocate( $im, $col_r, $col_g, $col_b );
$color_light = imagecolorallocate( $im, $col_r_l, $col_g_l, $col_b_l );
$color_dark = imagecolorallocate( $im, $col_r_d, $col_g_d, $col_b_d );
$_slant = mt_rand( -20, 40 );
if ( $i == 1 OR $i == 3 OR $i == 5 )
{
for( $ii = 0 ; $ii < 2 ; $ii++ )
{
$a = $x_param + 50;
$b = mt_rand(0,100);
$c = $a + 20;
$d = $b + 20;
$e = ( $i == 3 ) ? mt_rand( 280, 320 ) : mt_rand( -280, -320 );
imagearc( $im, $a , $b , $c, $d, 0, $e, $color_light );
imagearc( $im, $a+1, $b+1, $c, $d, 0, $e, $color_main );
}
}
if ( ! $_result = @imagettftext( $im, 24, $_slant, $x_param - 1, $y_param - 1, $color_light, $_font, $content{$i} ) )
{
$use_fonts = FALSE;
break;
}
else
{
@imagettftext( $im, 24, $_slant, $x_param + 1, $y_param + 1, $color_dark, $_font, $content{$i} );
@imagettftext( $im, 24, $_slant, $x_param, $y_param, $color_main, $_font, $content{$i} );
}
$x_param += rand( 15, 18 );
if( $x_param + 18 > $image_x )
{
$x_param -= ceil( $x_param + 18 - $image_x );
}
}
$use_fonts = TRUE;
}
if ( ! $use_fonts )
{
//-----------------------------------------
// Continue with nice background image
//-----------------------------------------
$tmp = imagecreatetruecolor($tmp_x , $tmp_y );
$tmp2 = imagecreatetruecolor($image_x, $image_y);
$white = imagecolorallocate( $tmp, 255, 255, 255 );
$black = imagecolorallocate( $tmp, 0, 0, 0 );
$grey = imagecolorallocate( $tmp, 100, 100, 100 );
$transparent = imagecolorallocate( $tmp2, 255, 255, 255 );
$_white = imagecolorallocate( $tmp2, 255, 255, 255 );
imagefill($tmp , 0, 0, $white );
imagefill($tmp2, 0, 0, $_white);
$num = strlen($content);
$x_param = 0;
$y_param = 0;
for( $i = 0; $i < $num; $i++ )
{
if ( $i > 0 )
{
$x_param += rand( 6, 12 );
if( $x_param + 18 > $image_x )
{
$x_param -= ceil( $x_param + 18 - $image_x );
}
}
$y_param = rand( 0, 5 );
$randomcolor = imagecolorallocate( $tmp, rand(50,200), rand(50,200),rand(50,200) );
imagestring( $tmp, 5, $x_param + 1, $y_param + 1, $content{$i}, $grey );
imagestring( $tmp, 5, $x_param , $y_param , $content{$i}, $randomcolor );
}
imagecopyresized($tmp2, $tmp, 0, 0, 0, 0, $image_x, $image_y, $tmp_x, $tmp_y );
$tmp2 = $this->captcha_show_gd_img_wave( $tmp2, 8, true );
imagecolortransparent( $tmp2, $transparent );
imagecopymerge( $im, $tmp2, 0, 0, 0, 0, $image_x, $image_y, 100 );
imagedestroy($tmp);
imagedestroy($tmp2);
}
}
//-----------------------------------------
// Blur?
//-----------------------------------------
if ( function_exists( 'imagefilter' ) )
{
@imagefilter( $im, IMG_FILTER_GAUSSIAN_BLUR );
}
//-----------------------------------------
// Render a border
//-----------------------------------------
$black = imagecolorallocate( $im, 0, 0, 0 );
imageline( $im, 0, 0, $image_x, 0, $black );
imageline( $im, 0, 0, 0, $image_y, $black );
imageline( $im, $image_x - 1, 0, $image_x - 1, $image_y, $black );
imageline( $im, 0, $image_y - 1, $image_x, $image_y - 1, $black );
//-----------------------------------------
// Show it!
//-----------------------------------------
@header( "Content-Type: image/jpeg" );
imagejpeg( $im );
imagedestroy( $im );
exit();
}
/*-------------------------------------------------------------------------*/
// Create wave effect for GD images...
/*-------------------------------------------------------------------------*/
/**
* Create wave effect for GD images
*
* @param object Image resource
* @return object Returned image resource
* @since 1.0
*/
function captcha_show_gd_img_wave( $im, $wave=10 )
{
$_width = imagesx( $im );
$_height = imagesy( $im );
$tmp = imagecreatetruecolor( $_width, $_height );
$_direction = ( time() % 2 ) ? TRUE : FALSE;
for ( $x = 0; $x < $_width; $x++ )
{
for ( $y = 0 ; $y < $_height ; $y++ )
{
$xo = $wave * sin( 2 * 3.1415 * $y / 128 );
$yo = $wave * cos( 2 * 3.1415 * $x / 128 );
$_x = $x - $xo;
$_y = $y - $yo;
if ( ($_x > 0 AND $_x < $_width) AND ($_y > 0 AND $_y < $_height) )
{
$index = imagecolorat($im, $_x, $_y);
$colors = imagecolorsforindex($im, $index);
$color = imagecolorresolve( $tmp, $colors['red'], $colors['green'], $colors['blue'] );
}
else
{
$color = imagecolorresolve( $tmp, 255, 255, 255 );
}
imagesetpixel( $tmp, $x, $y, $color );
}
}
return $tmp;
}
/*-------------------------------------------------------------------------*/
// Removes extinct captcha sessions
/*-------------------------------------------------------------------------*/
/**
* Removes extinct captcha sessions
* Clears out "dead" entries
*
* @param string Optional IP address to clear out on
* @return string void
*/
function captcha_clear_sessions( $ip_address='' )
{
//-----------------------------------------
// INIT
//-----------------------------------------
$time = time() - 60 * 3600;
$extra = ( $ip_address ) ? ' OR captcha_ipaddress="'.$ip_address.'"' : '';
//-----------------------------------------
// Remove...
//-----------------------------------------
$this->ipsclass->DB->build_and_exec_query( array( 'delete' => 'captcha',
'where' => 'captcha_date < ' . $time . $extra ) );
}
/*-------------------------------------------------------------------------*/
// Load up the backgrounds
/*-------------------------------------------------------------------------*/
/**
* Loads up the backgrounds.
*
* @return array backgrounds
*/
function _captcha_show_gd_img_get_backgrounds()
{
//-----------------------------------------
// INIT
//-----------------------------------------
$images = array();
$_path = $this->path_background;
if ( $_dir = @opendir( $_path ) )
{
while( false !== ( $_file = @readdir( $_dir ) ) )
{
if ( preg_match( "#\.(gif|jpeg|jpg|png)$#i", $_file ) )
{
$images[] = $_path . '/' . $_file;
}
}
}
return $images;
}
/*-------------------------------------------------------------------------*/
// Load up the fonts
/*-------------------------------------------------------------------------*/
/**
* Loads up the fonts.
*
* @return array fonts
*/
function _captcha_show_gd_img_get_fonts()
{
//-----------------------------------------
// INIT
//-----------------------------------------
$fonts = array();
$_path = $this->path_fonts;
if ( $_dir = @opendir( $_path ) )
{
while( false !== ( $_file = @readdir( $_dir ) ) )
{
if ( preg_match( "#\.(ttf)$#i", $_file ) )
{
$fonts[] = $_path . '/' . $_file;
}
}
}
return $fonts;
}
}
?>
+17 -10
View File
@@ -3,15 +3,22 @@
/*
+---------------------------------------------------------------------------
| Invision Power KERNEL
| Invision Power Board
| ========================================
| Invision Power Board 2.2.2
| =============================================
| by Matthew Mecham
| (c) 2006 Invision Power Services
| (c) 2001 - 2006 Invision Power Services, Inc.
| http://www.invisionpower.com
| ========================================
| =============================================
| Web: http://www.invisionboard.com
| http://www.ibresource.ru/products/invisionpowerboard/
| Time: Monday 05th of March 2007 10:10:55 PM
| Release: e3790216629e5a2aaf37070b32237f06
| Licence Info: http://www.invisionboard.com/?license
| http://www.ibresource.ru/license
+---------------------------------------------------------------------------
| INVISION POWER BOARD IS NOT FREE SOFTWARE!
| http://www.invisionboard.com
| INVISION POWER BOARD ÍÅ ßÂËßÅÒÑß ÁÅÑÏËÀÒÍÛÌ ÏÐÎÃÐÀÌÌÍÛÌ ÎÁÅÑÏÅ×ÅÍÈÅÌ!
| Ïðàâà íà ÏÎ ïðèíàäëåæàò Invision Power Services
| Ïðàâà íà ïåðåâîä IBResource (http://www.ibresource.ru)
+---------------------------------------------------------------------------
|
| > Communication Class: Allows data to be sent via HTTP:POST
@@ -252,7 +259,7 @@ class class_communication
if ( ! $url_parts['host'] )
{
$this->errors[] = "No host found in the URL '$file_location'!";
$this->errors[] = "Íå íàéäåí õîñò â çàäàííîì URL '$file_location'!";
return FALSE;
}
@@ -308,7 +315,7 @@ class class_communication
if ( ! $fp = @fsockopen( $host, $port, $errno, $errstr, $fsocket_timeout ) )
{
$this->errors[] = "CONNECTION REFUSED FROM $host";
$this->errors[] = "Ñîåäèíåíèå ïðåðâàíî óäàëåííûì ñåðâåðîì $host";
return FALSE;
}
@@ -328,7 +335,7 @@ class class_communication
if ( ! fputs( $fp, $header . $post_back_str ) )
{
$this->errors[] = "Unable to send request to $host!";
$this->errors[] = "Íå âîçìîæíî îòïðàâèòü çàïðîñ óäàëåííîìó ñåðâåðó $host!";
return FALSE;
}
@@ -340,7 +347,7 @@ class class_communication
if ( ! fputs( $fp, $header ) )
{
$this->errors[] = "Authorization Failed!";
$this->errors[] = "Íå óäàëîñü àâòîðèçîâàòüñÿ!";
return FALSE;
}
}
+10 -2
View File
@@ -2,14 +2,22 @@
/*
+--------------------------------------------------------------------------
| Invision Power Board
| Invision Power Board 2.2.2
| =============================================
| by Matthew Mecham
| (c) 2001 - 2006 Invision Power Services, Inc.
| http://www.invisionpower.com
| =============================================
| Web: http://www.invisionboard.com
| http://www.ibresource.ru/products/invisionpowerboard/
| Time: Monday 05th of March 2007 10:10:55 PM
| Release: e3790216629e5a2aaf37070b32237f06
| Licence Info: http://www.invisionboard.com/?license
| http://www.ibresource.ru/license
+---------------------------------------------------------------------------
| INVISION POWER BOARD ÍÅ ßÂËßÅÒÑß ÁÅÑÏËÀÒÍÛÌ ÏÐÎÃÐÀÌÌÍÛÌ ÎÁÅÑÏÅ×ÅÍÈÅÌ!
| Ïðàâà íà ÏÎ ïðèíàäëåæàò Invision Power Services
| Ïðàâà íà ïåðåâîä IBResource (http://www.ibresource.ru)
+---------------------------------------------------------------------------
| > $Date: 2005-10-10 14:03:20 +0100 (Mon, 10 Oct 2005) $
| > $Revision: 22 $
@@ -308,7 +316,7 @@ class class_converge
function generate_auto_log_in_key($len=60)
{
$pass = $this->generate_password_salt( 60 );
$pass = $this->generate_password_salt( $len );
return md5($pass);
}
+15 -6
View File
@@ -2,15 +2,24 @@
/*
+---------------------------------------------------------------------------
| Invision Power Board
| ========================================
| Invision Power Board 2.2.2
| =============================================
| by Matthew Mecham
| (c) 2004 Invision Power Services
| (c) 2001 - 2006 Invision Power Services, Inc.
| http://www.invisionpower.com
| ========================================
| =============================================
| Web: http://www.invisionboard.com
| http://www.ibresource.ru/products/invisionpowerboard/
| Time: Monday 05th of March 2007 10:10:55 PM
| Release: e3790216629e5a2aaf37070b32237f06
| Licence Info: http://www.invisionboard.com/?license
| http://www.ibresource.ru/license
+---------------------------------------------------------------------------
| INVISION POWER BOARD IS NOT FREE SOFTWARE!
| http://www.invisionboard.com
| INVISION POWER BOARD IS NOT FREE / OPEN SOURCE!
+---------------------------------------------------------------------------
| INVISION POWER BOARD ÍÅ ßÂËßÅÒÑß ÁÅÑÏËÀÒÍÛÌ ÏÐÎÃÐÀÌÌÍÛÌ ÎÁÅÑÏÅ×ÅÍÈÅÌ!
| Ïðàâà íà ÏÎ ïðèíàäëåæàò Invision Power Services
| Ïðàâà íà ïåðåâîä IBResource (http://www.ibresource.ru)
+---------------------------------------------------------------------------
|
| > CONVERT CHAR SET FUNCTIONS (Simple, light parser)
+47 -32
View File
@@ -3,15 +3,22 @@
/*
+--------------------------------------------------------------------------
| Invision Power Services Kernel [DB Abstraction]
| Invision Power Board
| Invision Power Board 2.2.2
| =============================================
| by Matthew Mecham
| (c) 2001 - 2006 Invision Power Services, Inc.
| http://www.invisionpower.com
| =============================================
| Web: http://www.invisionboard.com
| http://www.ibresource.ru/products/invisionpowerboard/
| Time: Monday 05th of March 2007 10:10:55 PM
| Release: e3790216629e5a2aaf37070b32237f06
| Licence Info: http://www.invisionboard.com/?license
| http://www.ibresource.ru/license
+---------------------------------------------------------------------------
| THIS IS NOT FREE / OPEN SOURCE SOFTWARE
| INVISION POWER BOARD ÍÅ ßÂËßÅÒÑß ÁÅÑÏËÀÒÍÛÌ ÏÐÎÃÐÀÌÌÍÛÌ ÎÁÅÑÏÅ×ÅÍÈÅÌ!
| Ïðàâà íà ÏÎ ïðèíàäëåæàò Invision Power Services
| Ïðàâà íà ïåðåâîä IBResource (http://www.ibresource.ru)
+---------------------------------------------------------------------------
|
| > Core Module
@@ -108,6 +115,8 @@ class db_main
'force_new_connection' => 0 ,
'error_log' => '' ,
'use_error_log' => 0 ,
'use_debug_log' => 0 ,
'mysql_codepage' => 'cp1251' ,
);
/**
@@ -117,6 +126,7 @@ class db_main
*/
var $error = "";
var $error_no = "";
var $error_codepage = "windows_1251";
/**
* Return error message or die inline
@@ -738,11 +748,11 @@ class db_main
else if ( $this->obj['use_error_log'] AND $this->obj['error_log'] )
{
$_error_string = "\n===================================================";
$_error_string .= "\n Date: ". date( 'r' );
$_error_string .= "\n Error Number: " . $this->error_no;
$_error_string .= "\n Error: " . $this->error;
$_error_string .= "\n IP Address: " . $_SERVER['REMOTE_ADDR'];
$_error_string .= "\n ".$the_error;
$_error_string .= "\n Âðåìÿ: ". date( 'r' );
$_error_string .= "\n Êîä îøèáêè: " . $this->error_no;
$_error_string .= "\n Ñîîáùåíèå ñåðâåðà: " . $this->error;
$_error_string .= "\n IP Àäðåñ êëèåíòà: " . $_SERVER['REMOTE_ADDR'];
$_error_string .= "\n Çàïðîñ: ".$the_error;
if ( $FH = @fopen( $this->obj['error_log'], 'a' ) )
{
@@ -750,24 +760,28 @@ class db_main
@fclose( $FH );
}
print "<html><head><title>IPS Driver Error</title>
print "<html><head>
<meta http-equiv=\"content-type\" content=\"text/html; charset=" . $this->error_codepage . "\" />
<title>Îøèáêà ðàáîòû äðàéâåðà ÁÄ</title>
<style>P,BODY{ font-family:arial,sans-serif; font-size:11px; }</style></head><body>
<blockquote><h1>IPS Driver Error</h1><b>There appears to be an error with the database.</b><br>
You can try to refresh the page by clicking <a href=\"javascript:window.location=window.location;\">here</a>
<blockquote><h1>Îøèáêà ïðè ðàáîòå ñ áàçîé äàííûõ</h1><b>Âîçíèêëà ïðîáëåìà ïðè ðàáîòå ñ áàçîé äàííûõ.</b><br>
Âû ìîæåòå ïîïðîáîâàòü îáíîâèòü ýòó ñòðàíèöó, íàæàâ <a href=\"javascript:window.location=window.location;\">ñþäà</a>
</body></html>";
}
else
{
$the_error .= "\n\nSQL error: ".$this->error."\n";
$the_error .= "SQL error code: ".$this->error_no."\n";
$the_error .= "Date: ".date("l dS \o\f F Y h:i:s A");
$the_error .= "\n\nÑîîáùåíèå ñåðâåðà: ".$this->error."\n";
$the_error .= "Êîä îøèáêè: ".$this->error_no."\n";
$the_error .= "Âðåìÿ: ".date("l dS \o\f F Y h:i:s A");
$out = "<html><head><title>IPS Driver Error</title>
$out = "<html><head>
<meta http-equiv=\"content-type\" content=\"text/html; charset=" . $this->error_codepage . "\" />
<title>Îøèáêà ðàáîòû äðàéâåðà ÁÄ</title>
<style>P,BODY{ font-family:arial,sans-serif; font-size:11px; }</style></head><body>
<blockquote><h1>IPS Driver Error</h1><b>There appears to be an error with the database.</b><br>
You can try to refresh the page by clicking <a href=\"javascript:window.location=window.location;\">here</a>.
<br><br><b>Error Returned</b><br>
<form name='mysql'><textarea rows=\"15\" cols=\"60\">".htmlspecialchars($the_error)."</textarea></form><br>We apologise for any inconvenience</blockquote></body></html>";
<blockquote><h1>Îøèáêà ïðè ðàáîòå ñ áàçîé äàííûõ</h1><b>Âîçíèêëà ïðîáëåìà ïðè ðàáîòå ñ áàçîé äàííûõ.</b><br>
Âû ìîæåòå ïîïðîáîâàòü îáíîâèòü ýòó ñòðàíèöó, íàæàâ <a href=\"javascript:window.location=window.location;\">ñþäà</a>.
<br><br><b>Îòëàäî÷íàÿ èíôîðìàöèÿ:</b><br>
<form name='mysql'><textarea rows=\"15\" cols=\"60\">".htmlspecialchars($the_error)."</textarea></form><br>Ïðèíîñèì ñâîè èçâèíåíèÿ çà âîçìîæíûå íåóäîáñòâà.</blockquote></body></html>";
print $out;
@@ -970,23 +984,24 @@ class db_main
function remove_all_quotes( $t )
{
//-----------------------------------------
// Remove empty comments
// We now check for comments in SQL classes
//-----------------------------------------
#$t = preg_replace( "#/\*(.??)\*/#s", " ", $t );
#$t = preg_replace( "#/\*.+?\*/#s" , " ", $t );
//-----------------------------------------
// Remove quotes
//-----------------------------------------
$t = preg_replace( "#\\\{1,}[\"']#s", "", $t );
$t = preg_replace( "#'[^'].*'#s" , "", $t );
$t = preg_replace( "#\"[^\"].*\"#s" , "", $t );
$t = preg_replace( "#'[^']*'#s" , "", $t );
$t = preg_replace( "#\"[^\"]*\"#s" , "", $t );
$t = preg_replace( "#\"\"#s" , "", $t );
$t = preg_replace( "#''#s" , "", $t );
//-----------------------------------------
// Remove comments
//-----------------------------------------
$t = preg_replace( "#/\*(.??)\*/#s", "", $t );
$t = preg_replace( "#/\*.+?\*/#s", "", $t );
#print $t;
return $t;
}
@@ -1011,10 +1026,10 @@ class db_main
if ( $this->obj['use_debug_log'] AND $this->obj['debug_log'] )
{
$_string = "\n==============================================================================";
$_string .= "\n Date: ". date( 'r' );
$_string .= "\n IP Address: " . $_SERVER['REMOTE_ADDR'];
$_string .= "\n Time Taken: ".$endtime;
$_string .= "\n ".$query;
$_string .= "\n Äàòà: ". date( 'r' );
$_string .= "\n IP Àäðåñ êëèåíòà: " . $_SERVER['REMOTE_ADDR'];
$_string .= "\n Âðåìÿ âûïîëíåíèÿ: ".$endtime;
$_string .= "\n Çàïðîñ: ".$query;
$_string .= "\n==============================================================================";
$_string .= "\n".$data;
+20 -2
View File
@@ -3,15 +3,22 @@
/*
+--------------------------------------------------------------------------
| Invision Power Services Kernel [DB Abstraction]
| Invision Power Board
| Invision Power Board 2.2.2
| =============================================
| by Matthew Mecham
| (c) 2001 - 2006 Invision Power Services, Inc.
| http://www.invisionpower.com
| =============================================
| Web: http://www.invisionboard.com
| http://www.ibresource.ru/products/invisionpowerboard/
| Time: Monday 05th of March 2007 10:10:55 PM
| Release: e3790216629e5a2aaf37070b32237f06
| Licence Info: http://www.invisionboard.com/?license
| http://www.ibresource.ru/license
+---------------------------------------------------------------------------
| THIS IS NOT FREE / OPEN SOURCE SOFTWARE
| INVISION POWER BOARD ÍÅ ßÂËßÅÒÑß ÁÅÑÏËÀÒÍÛÌ ÏÐÎÃÐÀÌÌÍÛÌ ÎÁÅÑÏÅ×ÅÍÈÅÌ!
| Ïðàâà íà ÏÎ ïðèíàäëåæàò Invision Power Services
| Ïðàâà íà ïåðåâîä IBResource (http://www.ibresource.ru)
+---------------------------------------------------------------------------
|
| > MySQL Driver Module
@@ -54,6 +61,17 @@ if ( ! defined('KERNEL_PATH') )
}
}
//-----------------------------------------
// MySQLi and PHP 5.0.5 don't get along well
//-----------------------------------------
$versions = explode( ".", phpversion() );
if( $versions[0] == 5 AND $versions[1] == 0 AND $versions[2] == 5 )
{
define( 'FORCE_MYSQL_ONLY', 1 );
}
if ( extension_loaded('mysqli') AND ! defined( 'FORCE_MYSQL_ONLY' ) )
{
require( KERNEL_PATH."class_db_mysqli_client.php" );
+47 -9
View File
@@ -3,15 +3,22 @@
/*
+--------------------------------------------------------------------------
| Invision Power Services Kernel [DB Abstraction]
| Invision Power Board
| Invision Power Board 2.2.2
| =============================================
| by Matthew Mecham
| (c) 2001 - 2006 Invision Power Services, Inc.
| http://www.invisionpower.com
| =============================================
| Web: http://www.invisionboard.com
| http://www.ibresource.ru/products/invisionpowerboard/
| Time: Monday 05th of March 2007 10:10:55 PM
| Release: e3790216629e5a2aaf37070b32237f06
| Licence Info: http://www.invisionboard.com/?license
| http://www.ibresource.ru/license
+---------------------------------------------------------------------------
| THIS IS NOT FREE / OPEN SOURCE SOFTWARE
| INVISION POWER BOARD ÍÅ ßÂËßÅÒÑß ÁÅÑÏËÀÒÍÛÌ ÏÐÎÃÐÀÌÌÍÛÌ ÎÁÅÑÏÅ×ÅÍÈÅÌ!
| Ïðàâà íà ÏÎ ïðèíàäëåæàò Invision Power Services
| Ïðàâà íà ïåðåâîä IBResource (http://www.ibresource.ru)
+---------------------------------------------------------------------------
|
| > MySQLi Driver Module
@@ -145,10 +152,31 @@ class db_driver_mysql extends db_main
$this->fatal_error();
return FALSE;
}
$this->sql_set_collation_and_cp();
return TRUE;
}
function sql_set_collation_and_cp()
{
$this->sql_get_version();
if ( $this->mysql_version >= 40101 )
{
$res = mysql_query( "SHOW CHARSET LIKE '" . $this->obj['mysql_codepage'] . "'", $this->connection_id );
$charset = mysql_fetch_row($res);
mysql_query( "SET NAMES " . $this->obj['mysql_codepage'], $this->connection_id );
mysql_query( "SET CHARACTER SET " . $this->obj['mysql_codepage'], $this->connection_id );
mysql_query( "SET character_set_connection = " . $this->obj['mysql_codepage'], $this->connection_id );
mysql_query( "SET collation_connection = " . $charset[2], $this->connection_id );
}
return TRUE;
}
function sql_can_subquery()
{
$this->sql_get_version();
@@ -260,7 +288,7 @@ class db_driver_mysql extends db_main
// SIMPLE: UPDATE
/*-------------------------------------------------------------------------*/
function simple_update( $tbl, $set, $where, $low_pro='' )
function simple_update( $tbl, $set, $where='', $low_pro='' )
{
if ( $low_pro )
{
@@ -279,7 +307,7 @@ class db_driver_mysql extends db_main
// SIMPLE: DELETE
/*-------------------------------------------------------------------------*/
function simple_delete( $tbl, $where )
function simple_delete( $tbl, $where='' )
{
if( !$where )
{
@@ -526,16 +554,22 @@ class db_driver_mysql extends db_main
{
$_tmp = strtolower( $this->remove_all_quotes($the_query) );
if ( preg_match( "#(?:/\*|\*/)#i", $_tmp ) )
{
$this->fatal_error( "Íàñòðîéêè äðàéâåðà íå äîïóñêàþò èñïîëüçîâàíèå êîììåíòàðèåâ â SQL çàïðîñå.\nÈçìåíèòå àòðèáóò allow_sub_select íà 1 ó îáúåêòà äðàéâåðà äëÿ âûêëþ÷åíèÿ ýòîé ïðîâåðêè." );
return false;
}
if ( preg_match( "#[^_a-zA-Z]union[^_a-zA-Z]#s", $_tmp ) )
{
$this->fatal_error( "UNION query joins are not allowed.\nAdd \$DB->allow_sub_select=1; before any query construct to allow them" );
$this->fatal_error( "Íàñòðîéêè äðàéâåðà íå ïîçâîëÿþò èñïîëüçîâàòü UNION-çàïðîñû.\nÈçìåíèòå àòðèáóò allow_sub_select íà 1 ó îáúåêòà äðàéâåðà äëÿ âûêëþ÷åíèÿ ýòîé ïðîâåðêè." );
return false;
}
else if ( preg_match_all( "#[^_a-zA-Z](select)[^_a-zA-Z]#s", $_tmp, $matches ) )
{
if ( count( $matches ) > 1 )
{
$this->fatal_error( "SUB SELECT query joins are not allowed.\nAdd \$DB->allow_sub_select=1; before any query construct to allow them" );
$this->fatal_error( "Íàñòðîéêè äðàéâåðà íå ïîçâîëÿþò èñïîëüçîâàòü âëîæåííûå SELECT â çàïðîñàõ.\nÈçìåíèòå àòðèáóò allow_sub_select íà 1 ó îáúåêòà äðàéâåðà äëÿ âûêëþ÷åíèÿ ýòîé ïðîâåðêè." );
return false;
}
}
@@ -557,7 +591,7 @@ class db_driver_mysql extends db_main
if (! $this->query_id )
{
$this->fatal_error("mySQL query error: $the_query");
$this->fatal_error($the_query);
}
//-----------------------------------------
@@ -588,6 +622,10 @@ class db_driver_mysql extends db_main
$this->write_debug_log( $query, $_data, $endtime );
}
else
{
$this->write_debug_log( $the_query, $_data, $endtime );
}
}
else if ( $this->obj['debug'] )
{
@@ -926,7 +964,7 @@ class db_driver_mysql extends db_main
$return = 0;
if( in_array( SQL_PREFIX.$table, $table_names ) )
if ( in_array( SQL_PREFIX.$table, $table_names ) )
{
$return = 1;
}
+47 -10
View File
@@ -3,15 +3,22 @@
/*
+--------------------------------------------------------------------------
| Invision Power Services Kernel [DB Abstraction]
| Invision Power Board
| Invision Power Board 2.2.2
| =============================================
| by Matthew Mecham
| (c) 2001 - 2006 Invision Power Services, Inc.
| http://www.invisionpower.com
| =============================================
| Web: http://www.invisionboard.com
| http://www.ibresource.ru/products/invisionpowerboard/
| Time: Monday 05th of March 2007 10:10:55 PM
| Release: e3790216629e5a2aaf37070b32237f06
| Licence Info: http://www.invisionboard.com/?license
| http://www.ibresource.ru/license
+---------------------------------------------------------------------------
| THIS IS NOT FREE / OPEN SOURCE SOFTWARE
| INVISION POWER BOARD ÍÅ ßÂËßÅÒÑß ÁÅÑÏËÀÒÍÛÌ ÏÐÎÃÐÀÌÌÍÛÌ ÎÁÅÑÏÅ×ÅÍÈÅÌ!
| Ïðàâà íà ÏÎ ïðèíàäëåæàò Invision Power Services
| Ïðàâà íà ïåðåâîä IBResource (http://www.ibresource.ru)
+---------------------------------------------------------------------------
|
| > MySQLi Driver Module
@@ -134,11 +141,31 @@ class db_driver_mysql extends db_main
return FALSE;
}
$this->sql_set_collation_and_cp();
mysqli_autocommit( $this->connection_id, TRUE );
return TRUE;
}
function sql_set_collation_and_cp()
{
$this->sql_get_version();
if ( $this->mysql_version >= 40101 )
{
$res = mysqli_query( $this->connection_id, "SHOW CHARSET LIKE '" . $this->obj['mysql_codepage'] . "'");
$charset = mysqli_fetch_row($res);
mysqli_query( $this->connection_id, "SET NAMES " . $this->obj['mysql_codepage'] );
mysqli_query( $this->connection_id, "SET CHARACTER SET " . $this->obj['mysql_codepage'] );
mysqli_query( $this->connection_id, "SET character_set_connection = " . $this->obj['mysql_codepage'] );
mysqli_query( $this->connection_id, "SET collation_connection = " . $charset[2] );
}
return TRUE;
}
function sql_can_subquery()
{
$this->sql_get_version();
@@ -251,7 +278,7 @@ class db_driver_mysql extends db_main
// SIMPLE: UPDATE
/*-------------------------------------------------------------------------*/
function simple_update( $tbl, $set, $where, $low_pro='' )
function simple_update( $tbl, $set, $where='', $low_pro='' )
{
if ( $low_pro )
{
@@ -270,7 +297,7 @@ class db_driver_mysql extends db_main
// SIMPLE: DELETE
/*-------------------------------------------------------------------------*/
function simple_delete( $tbl, $where )
function simple_delete( $tbl, $where='' )
{
if( !$where )
{
@@ -516,16 +543,22 @@ class db_driver_mysql extends db_main
{
$_tmp = strtolower( $this->remove_all_quotes($the_query) );
if ( preg_match( "#(?:/\*|\*/)#i", $_tmp ) )
{
$this->fatal_error( "Íàñòðîéêè äðàéâåðà íå äîïóñêàþò èñïîëüçîâàíèå êîììåíòàðèåâ â SQL çàïðîñå.\nÈçìåíèòå àòðèáóò allow_sub_select íà 1 ó îáúåêòà äðàéâåðà äëÿ âûêëþ÷åíèÿ ýòîé ïðîâåðêè." );
return false;
}
if ( preg_match( "#[^_a-zA-Z]union[^_a-zA-Z]#s", $_tmp ) )
{
$this->fatal_error( "UNION query joins are not allowed.\nAdd \$DB->allow_sub_select=1; before any query construct to allow them" );
$this->fatal_error( "Íàñòðîéêè äðàéâåðà íå ïîçâîëÿþò èñïîëüçîâàòü UNION-çàïðîñû.\nÈçìåíèòå àòðèáóò allow_sub_select íà 1 ó îáúåêòà äðàéâåðà äëÿ âûêëþ÷åíèÿ ýòîé ïðîâåðêè." );
return false;
}
else if ( preg_match_all( "#[^_a-zA-Z](select)[^_a-zA-Z]#s", $_tmp, $matches ) )
{
if ( count( $matches ) > 1 )
{
$this->fatal_error( "SUB SELECT query joins are not allowed.\nAdd \$DB->allow_sub_select=1; before any query construct to allow them" );
$this->fatal_error( "Íàñòðîéêè äðàéâåðà íå ïîçâîëÿþò èñïîëüçîâàòü âëîæåííûå SELECT â çàïðîñàõ.\nÈçìåíèòå àòðèáóò allow_sub_select íà 1 ó îáúåêòà äðàéâåðà äëÿ âûêëþ÷åíèÿ ýòîé ïðîâåðêè." );
return false;
}
}
@@ -547,7 +580,7 @@ class db_driver_mysql extends db_main
if (! $this->query_id )
{
$this->fatal_error("mySQL query error: $the_query");
$this->fatal_error($the_query);
}
//-----------------------------------------
@@ -578,6 +611,10 @@ class db_driver_mysql extends db_main
$this->write_debug_log( $the_query, $_data, $endtime );
}
else
{
$this->write_debug_log( $the_query, $_data, $endtime );
}
}
else if ($this->obj['debug'])
{
@@ -672,7 +709,7 @@ class db_driver_mysql extends db_main
$query_id = $this->query_id;
}
$this->record_row = mysqli_fetch_array($query_id, MYSQL_ASSOC);
$this->record_row = mysqli_fetch_array($query_id, MYSQLI_ASSOC);
return $this->record_row;
}
@@ -949,7 +986,7 @@ class db_driver_mysql extends db_main
{
if( $this->connect_failed )
{
return mysqli_connect_errno( $this->connection_id );
return mysqli_connect_errno( );
}
else
{
@@ -965,7 +1002,7 @@ class db_driver_mysql extends db_main
{
if( $this->connect_failed )
{
return mysqli_connect_error( $this->connection_id );
return mysqli_connect_error( );
}
else
{
+16 -6
View File
@@ -2,12 +2,22 @@
/*
+---------------------------------------------------------------------------
| Invision Power Services Kernel Module
| Invision Power Board
| ========================================
| Invision Power Board 2.2.2
| =============================================
| by Matthew Mecham
| (c) 2005 Invision Power Services
| (c) 2001 - 2006 Invision Power Services, Inc.
| http://www.invisionpower.com
| ========================================
| =============================================
| Web: http://www.invisionboard.com
| http://www.ibresource.ru/products/invisionpowerboard/
| Time: Monday 05th of March 2007 10:10:55 PM
| Release: e3790216629e5a2aaf37070b32237f06
| Licence Info: http://www.invisionboard.com/?license
| http://www.ibresource.ru/license
+---------------------------------------------------------------------------
| INVISION POWER BOARD ÍÅ ßÂËßÅÒÑß ÁÅÑÏËÀÒÍÛÌ ÏÐÎÃÐÀÌÌÍÛÌ ÎÁÅÑÏÅ×ÅÍÈÅÌ!
| Ïðàâà íà ÏÎ ïðèíàäëåæàò Invision Power Services
| Ïðàâà íà ïåðåâîä IBResource (http://www.ibresource.ru)
+---------------------------------------------------------------------------
|
| > Difference Engine.
@@ -387,7 +397,7 @@ class class_difference
}
else
{
return "Error, files not written to disk";
return "Îøèáêà: ôàéëà íå ñóùåñòâóåò";
}
}
@@ -444,7 +454,7 @@ class class_difference
}
else
{
return "Error, files not written to disk";
return "Îøèáêà: ôàéëà íå ñóùåñòâóåò";
}
}
+11 -4
View File
@@ -3,15 +3,22 @@
/*
+--------------------------------------------------------------------------
| Invision Power Services Kernel [Email Functions]
| Invision Power Board
| Invision Power Board 2.2.2
| =============================================
| by Matthew Mecham
| (c) 2001 - 2006 Invision Power Services, Inc.
| http://www.invisionpower.com
| =============================================
| Web: http://www.invisionboard.com
| http://www.ibresource.ru/products/invisionpowerboard/
| Time: Monday 05th of March 2007 10:10:55 PM
| Release: e3790216629e5a2aaf37070b32237f06
| Licence Info: http://www.invisionboard.com/?license
| http://www.ibresource.ru/license
+---------------------------------------------------------------------------
| THIS IS NOT FREE / OPEN SOURCE SOFTWARE
| INVISION POWER BOARD ÍÅ ßÂËßÅÒÑß ÁÅÑÏËÀÒÍÛÌ ÏÐÎÃÐÀÌÌÍÛÌ ÎÁÅÑÏÅ×ÅÍÈÅÌ!
| Ïðàâà íà ÏÎ ïðèíàäëåæàò Invision Power Services
| Ïðàâà íà ïåðåâîä IBResource (http://www.ibresource.ru)
+---------------------------------------------------------------------------
|
| > Core Module
@@ -356,12 +363,12 @@ class class_email
//-----------------------------------------
# Plain text version...
$this->mail_headers .= "\nContent-Type: text/plain;\n\tcharset=\"".$this->char_set."\"\nContent-Transfer-Encoding: quoted-printable\n\n".$this->pt_message."\n\n--".$this->boundry;
$this->mail_headers .= "\nContent-Type: text/plain;\n\tcharset=\"".$this->char_set."\"\n\n".$this->pt_message."\n\n--".$this->boundry;
# HTML version
if ( $this->html_email )
{
$this->mail_headers .= "\nContent-Type: text/html;\n\tcharset=\"".$this->char_set."\"\nContent-Transfer-Encoding: quoted-printable\n\n".$this->message."\n\n";
$this->mail_headers .= "\nContent-Type: text/html;\n\tcharset=\"".$this->char_set."\"\n\n".$this->message."\n\n";
}
//-----------------------------------------
+33 -15
View File
@@ -2,15 +2,22 @@
/*
+---------------------------------------------------------------------------
| Invision Power Board
| ========================================
| Invision Power Board 2.2.2
| =============================================
| by Matthew Mecham
| (c) 2004 Invision Power Services
| (c) 2001 - 2006 Invision Power Services, Inc.
| http://www.invisionpower.com
| ========================================
| =============================================
| Web: http://www.invisionboard.com
| http://www.ibresource.ru/products/invisionpowerboard/
| Time: Monday 05th of March 2007 10:10:55 PM
| Release: e3790216629e5a2aaf37070b32237f06
| Licence Info: http://www.invisionboard.com/?license
| http://www.ibresource.ru/license
+---------------------------------------------------------------------------
| INVISION POWER BOARD IS NOT FREE SOFTWARE!
| http://www.invisionboard.com
| INVISION POWER BOARD ÍÅ ßÂËßÅÒÑß ÁÅÑÏËÀÒÍÛÌ ÏÐÎÃÐÀÌÌÍÛÌ ÎÁÅÑÏÅ×ÅÍÈÅÌ!
| Ïðàâà íà ÏÎ ïðèíàäëåæàò Invision Power Services
| Ïðàâà íà ïåðåâîä IBResource (http://www.ibresource.ru)
+---------------------------------------------------------------------------
|
| > File Management Functions
@@ -101,7 +108,7 @@ class class_file_management
* file_get_contents() has caching issues
* @return string File data
*/
function get_file_contents( $file_location )
function get_file_contents( $file_location, $http_user='', $http_pass='' )
{
//-------------------------------
// INIT
@@ -110,6 +117,17 @@ class class_file_management
$contents = "";
$file_location = str_replace( '&amp;', '&', $file_location );
//-----------------------------------------
// Inline user/pass?
//-----------------------------------------
if ( $http_user and $http_pass )
{
$this->auth_req = 1;
$this->auth_user = $http_user;
$this->auth_pass = $http_pass;
}
//-------------------------------
// Hello
//-------------------------------
@@ -127,7 +145,7 @@ class class_file_management
if ( ! file_exists( $file_location ) )
{
$this->errors[] = "File '$file_location' does not exist, please check the path.";
$this->errors[] = "Ôàéë '$file_location' íå ñóùåñòâóåò, ïðîâåðüòå ïóòü.";
return;
}
@@ -210,7 +228,7 @@ class class_file_management
if ( ! $url_parts['host'] )
{
$this->errors[] = "No host found in the URL '$file_location'!";
$this->errors[] = "Íå íàéäåí õîñò â çàäàííîì URL '$file_location'!";
return FALSE;
}
@@ -245,7 +263,7 @@ class class_file_management
if ( ! $fp = @fsockopen( $host, $port, $errno, $errstr, $fsocket_timeout ) )
{
$this->errors[] = "Could not establish a connection with $host";
$this->errors[] = "Ñîåäèíåíèå ïðåðâàíî óäàëåííûì ñåðâåðîì $host";
return FALSE;
}
@@ -253,14 +271,14 @@ class class_file_management
{
$final_carriage = "";
if( ! $this->auth_req )
if ( ! $this->auth_req )
{
$final_carriage = "\r\n";
}
if ( ! fputs( $fp, "GET $path HTTP/1.0\r\nHost:$host\r\nConnection: Keep-Alive\r\n{$final_carriage}" ) )
{
$this->errors[] = "Unable to send request to $host!";
$this->errors[] = "Íå âîçìîæíî îòïðàâèòü çàïðîñ óäàëåííîìó ñåðâåðó $host!";
return FALSE;
}
@@ -272,7 +290,7 @@ class class_file_management
if ( ! fputs( $fp, $header ) )
{
$this->errors[] = "Authorization Failed!";
$this->errors[] = "Íå óäàëîñü àâòîðèçîâàòüñÿ!";
return FALSE;
}
}
@@ -357,7 +375,7 @@ class class_file_management
if ( ! is_dir( $from_path ) )
{
$this->errors[] = "Could not locate directory '$from_path'";
$this->errors[] = "Íå âîçìîæíî íàéòè äèðåêòîðèþ '$from_path'";
return FALSE;
}
@@ -365,7 +383,7 @@ class class_file_management
{
if ( ! @mkdir( $to_path, $mode ) )
{
$this->errors[] = "Could not create directory '$to_path' please check the CHMOD permissions and re-try";
$this->errors[] = "Íå âîçìîæíî ñîçäàòü äèðåêòîðèþ '$to_path' ïðîâåðüòå ïðàâà äîñòóïà (CHMOD) è ïîïðîáóéòå ñíîâà";
return FALSE;
}
else
+40 -22
View File
@@ -2,14 +2,22 @@
/*
+--------------------------------------------------------------------------
| Invision Power Board
| Invision Power Board 2.2.2
| =============================================
| by Matthew Mecham
| (c) 2001 - 2006 Invision Power Services, Inc.
| http://www.invisionpower.com
| =============================================
| Web: http://www.invisionboard.com
| http://www.ibresource.ru/products/invisionpowerboard/
| Time: Monday 05th of March 2007 10:10:55 PM
| Release: e3790216629e5a2aaf37070b32237f06
| Licence Info: http://www.invisionboard.com/?license
| http://www.ibresource.ru/license
+---------------------------------------------------------------------------
| INVISION POWER BOARD ÍÅ ßÂËßÅÒÑß ÁÅÑÏËÀÒÍÛÌ ÏÐÎÃÐÀÌÌÍÛÌ ÎÁÅÑÏÅ×ÅÍÈÅÌ!
| Ïðàâà íà ÏÎ ïðèíàäëåæàò Invision Power Services
| Ïðàâà íà ïåðåâîä IBResource (http://www.ibresource.ru)
+---------------------------------------------------------------------------
| > $Date: 2005-10-10 14:03:20 +0100 (Mon, 10 Oct 2005) $
| > $Revision: 22 $
@@ -398,7 +406,17 @@ class class_image
else
{
$thumb = @imagecreatetruecolor( $im['img_width'], $im['img_height'] );
@imagecopyresampled($thumb, $image, 0, 0, 0, 0, $im['img_width'], $im['img_height'], $img_size[0], $img_size[1] );
if( $this->image_type == 'png' )
{
@imagealphablending( $thumb, FALSE );
@imagesavealpha( $thumb, TRUE );
$transparent = @imagecolorallocatealpha($thumb, 255, 255, 255, 127);
@imagefilledrectangle($thumb, 0, 0, $im['img_width'], $im['img_height'], $transparent);
}
@imagecopyresampled($thumb, $image, 0, 0, 0, 0, $im['img_width'], $im['img_height'], $img_size[0], $img_size[1] );
}
//-----------------------------------------------
@@ -416,26 +434,26 @@ class class_image
$this->out_file_name = preg_replace( "/^(.*)\..+?$/", "\\1", $this->in_file_name ) . '_thumb';
}
if ( function_exists( 'imagejpeg' ) )
{
$this->file_extension = 'jpg';
@imagejpeg( $thumb, $this->out_file_dir."/".$this->out_file_name.'.jpg' );
@chmod( $this->out_file_dir."/".$this->out_file_name.'.jpg', 0777 );
@imagedestroy( $thumb );
@imagedestroy( $image );
$return['thumb_location'] = $this->out_file_name.'.jpg';
return $return;
}
else if ( function_exists( 'imagepng' ) )
{
$this->file_extension = 'png';
@imagepng( $thumb, $this->out_file_dir."/".$this->out_file_name.'.png' );
@chmod( $this->out_file_dir."/".$this->out_file_name.'.png', 0777 );
@imagedestroy( $thumb );
@imagedestroy( $image );
$return['thumb_location'] = $this->out_file_name.'.png';
return $return;
}
if ( function_exists( 'imagepng' ) AND $this->image_type == 'png' )
{
$this->file_extension = 'png';
@imagepng( $thumb, $this->out_file_dir."/".$this->out_file_name.'.png' );
@chmod( $this->out_file_dir."/".$this->out_file_name.'.png', 0777 );
@imagedestroy( $thumb );
@imagedestroy( $image );
$return['thumb_location'] = $this->out_file_name.'.png';
return $return;
}
else if ( function_exists( 'imagejpeg' ) )
{
$this->file_extension = 'jpg';
@imagejpeg( $thumb, $this->out_file_dir."/".$this->out_file_name.'.jpg' );
@chmod( $this->out_file_dir."/".$this->out_file_name.'.jpg', 0777 );
@imagedestroy( $thumb );
@imagedestroy( $image );
$return['thumb_location'] = $this->out_file_name.'.jpg';
return $return;
}
else
{
//--------------------------------------
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,553 @@
<?php
/*
+--------------------------------------------------------------------------
| Invision Power Board 2.2.2
| =============================================
| by Matthew Mecham
| (c) 2001 - 2006 Invision Power Services, Inc.
| http://www.invisionpower.com
| =============================================
| Web: http://www.invisionboard.com
| http://www.ibresource.ru/products/invisionpowerboard/
| Time: Monday 05th of March 2007 10:10:55 PM
| Release: e3790216629e5a2aaf37070b32237f06
| Licence Info: http://www.invisionboard.com/?license
| http://www.ibresource.ru/license
+---------------------------------------------------------------------------
| INVISION POWER BOARD ÍÅ ßÂËßÅÒÑß ÁÅÑÏËÀÒÍÛÌ ÏÐÎÃÐÀÌÌÍÛÌ ÎÁÅÑÏÅ×ÅÍÈÅÌ!
| Ïðàâà íà ÏÎ ïðèíàäëåæàò Invision Power Services
| Ïðàâà íà ïåðåâîä IBResource (http://www.ibresource.ru)
+---------------------------------------------------------------------------
| > $Date: 2005-10-10 14:03:20 +0100 (Mon, 10 Oct 2005) $
| > $Revision: 22 $
| > $Author: matt $
+---------------------------------------------------------------------------
|
| > XML ARCHIVE CLASS: Handling methods (KERNEL)
| > Module written by Matt Mecham
| > Date started: 25th February
|
| > Module Version Number: 1.0.0
+--------------------------------------------------------------------------
*/
/**
* IPS Kernel Pages: XMLArchive
*
* This class contains all generic functions to handle
* the creation and extraction of XML Archive documents
* This is a proprietry technology of IPS, Inc.
*
* Example Usage:
* <code>
*
* $xmlarchive = new class_xmlarchive();
*
* $xmlarchive->xml_add_file( 'some/dir/filename.html' );
* $xmlarchive->xml_add_file_contents( $data, 'some/dir/filename.html' );
*
* $xmlarchive->xml_add_file( 'some/dir/filename.html', array( 'custom_tag' => $value ) );
* $xmlarchive->xml_add_file_contents( $data, 'some/dir/filename.html', array( 'custom_tag' => $value ) );
*
* $xmlarchive->xml_add_directory( 'some/dir' );
* $xmlarchive->xml_create_archive();
*
* $xmlarchive->xml_save( 'filename.xml' );
* $xmlarchive->xml_save_gzip( 'filename.xml.gz' );
*
* $contents = $xmlarchive->xml_get_contents();
*
* $xmlarchive->xml_read_archive( 'filename.xml' );
* $xmlarchive->xml_read_archive_data( $xml_data );
* </code>
* ERROR NUMBERS:
* <ul>
* <li>001: No such directory or file
* <li>002: Not a directory
* <li>003: Could not write archive to disk
* <li>004: No XML document to save
* <li>005: Could not load xml data
* </ul>
*
* @package IPS_KERNEL
* @author Matt Mecham
* @copyright Invision Power Services, Inc.
* @version 2.1
*/
/**
* XMLArchive Creation and Extraction Functions
*
* Methods and functions for handling XMLArchive documents
*
* @package IPS_KERNEL
* @author Matt Mecham
* @version 2.1
*/
class class_resources_reader
{
/**
* XML content
*
* @var string
*/
var $xml = "";
/**
* File array
*
* @var artay
*/
var $file_array = array();
/**
* Error number
*
* @var integer
*/
var $error_number = 0;
/**
* Error message
*
* @var string
*/
var $error_message = "";
/**
* Work files
*
* @var array
*/
var $workfiles = array();
/**
* Non binary file extensions
*
* @var string
*/
var $non_binary = 'txt htm html xml css js cgi php php3';
/**
* Strip path
*
* @var string
*/
var $strip_path = "";
/**
* Root path
*
* @var string
*/
var $root_path = "";
/*-------------------------------------------------------------------------*/
// CONSTRUCTOR
/*-------------------------------------------------------------------------*/
function class_resources_reader( $root_path="" )
{
$tmp = "";
$this->root_path = $root_path;
//-----------------------------------
// Get the XML class
//-----------------------------------
require_once( $this->root_path.'class_xml.php' );
$this->xml = new class_xml();
$this->error_number = 0;
}
/*-------------------------------------------------------------------------*/
// READ Archive from disk
/*-------------------------------------------------------------------------*/
/**
* Read an XML document from disk
*
* @param string File name
* @return void
*/
function xml_read_archive( $filename )
{
if ( file_exists( $filename ) )
{
if ( strstr( $filename, '.gz' ) )
{
if ( $FH = @gzopen( $filename, 'r' ) )
{
$data = @gzread( $FH, $filename );
@gzclose( $FH );
}
else
{
$this->error_number = '005';
}
}
else
{
if ( $FH = @fopen( $filename, 'r' ) )
{
$data = @fread( $FH, filesize( $filename ) );
@fclose( $FH );
}
else
{
$this->error_number = '005';
}
}
$this->xml_read_archive_data( $data );
}
else
{
$this->error_number = '001';
}
}
/*-------------------------------------------------------------------------*/
// READ Archive from data
/*-------------------------------------------------------------------------*/
/**
* Read an XML document from passed data
*
* @param string Raw XML Data
* @return void
*/
function xml_read_archive_data( $data )
{
if ( $data )
{
$this->xml->xml_parse_document( $data );
if ( is_array( $this->xml->xml_array ) )
{
$this->file_array = array();
foreach( $this->xml->xml_array['xmlarchive']['fileset']['file'] as $entry )
{
$this_array = array();
if( is_array( $entry ) )
{
foreach ( $entry as $k => $v )
{
if ( $k == 'content' )
{
$v['VALUE'] = base64_decode( preg_replace( "/\s/", "", $entry['content']['VALUE'] ) );
}
$this_array[ $k ] = $v['VALUE'];
}
$this->file_array[] = $this_array;
}
}
}
}
}
/*-------------------------------------------------------------------------*/
// SAVE XML to disk
/*-------------------------------------------------------------------------*/
/**
* Write out the XML document as a GZIP file
*
* @param string FIlename
* @return void
*/
function xml_save_gzip( $filename )
{
if ( $this->xml->xml_document )
{
if ( $FH = @gzopen( $filename, 'wb' ) )
{
@gzwrite( $FH, $this->xml->xml_document );
@gzclose( $FH );
}
else
{
$this->error_number = '003';
}
}
else
{
$this->error_number = '004';
}
}
/*-------------------------------------------------------------------------*/
// SAVE XML to disk
/*-------------------------------------------------------------------------*/
/**
* Write out the XML document as a normal file
*
* @param string FIlename
* @return void
*/
function xml_save( $filename )
{
if ( $this->xml->xml_document )
{
if ( $FH = @fopen( $filename, 'wb' ) )
{
@fwrite( $FH, $this->xml->xml_document );
@fclose( $FH );
}
else
{
$this->error_number = '003';
}
}
else
{
$this->error_number = '004';
}
}
/*-------------------------------------------------------------------------*/
// XML get contents
/*-------------------------------------------------------------------------*/
/**
* Method of getting XML document from this class
*
* @return string XML document
*/
function xml_get_contents()
{
return $this->xml->xml_document;
}
/*-------------------------------------------------------------------------*/
// Create the XML archive
/*-------------------------------------------------------------------------*/
/**
* Create the XML archive
*
* @return void
*/
function xml_create_archive()
{
$this->xml->xml_set_root( 'xmlarchive', array( 'generator' => 'IPB', 'created' => time() ) );
$this->xml->xml_add_group( 'fileset' );
$entry = array();
foreach( $this->file_array as $f )
{
$content = array();
foreach ( $f as $k => $v )
{
if ( $k == 'content' )
{
$v = chunk_split(base64_encode($v));
}
$content[] = $this->xml->xml_build_simple_tag( $k, $v );
}
$entry[] = $this->xml->xml_build_entry( 'file', $content );
}
$this->xml->xml_add_entry_to_group( 'fileset', $entry );
$this->xml->xml_format_document();
}
/*-------------------------------------------------------------------------*/
// Add directory contents
/*-------------------------------------------------------------------------*/
function xml_add_directory( $dir )
{
$this->error_number = "";
//-----------------------------------
// Got dir?
//-----------------------------------
if ( ! is_dir($dir) )
{
$this->error_number = '001';
return FALSE;
}
//-----------------------------------
// Populate this->workfiles
//-----------------------------------
$this->workfiles = array();
$this->_xml_get_dir_contents( $dir );
//-----------------------------------
// Add them into the file array
//-----------------------------------
foreach ( $this->workfiles as $f )
{
$this->xml_add_file( $f );
}
$this->workfiles = array();
}
/*-------------------------------------------------------------------------*/
// Add File (interface to file_contents)
/*-------------------------------------------------------------------------*/
function xml_add_file( $filename, $extra_tags=array() )
{
//-----------------------------------
// Kill OS X hidden files
//-----------------------------------
if ( preg_match( "/\.ds_store/i", $filename ) )
{
return;
}
if ( file_exists( $filename ) )
{
if ( $FH = @fopen( $filename, 'rb' ) )
{
$data = @fread( $FH, filesize( $filename ) );
@fclose( $FH );
}
$this->xml_add_file_contents( $data, $filename, $extra_tags );
}
else
{
$this->error_number = '001';
}
}
/*-------------------------------------------------------------------------*/
// Add File Contents
/*-------------------------------------------------------------------------*/
function xml_add_file_contents( $data, $filename, $extra_tags=array() )
{
$ext = preg_replace( "/.*\.(.+?)$/", "\\1", $filename );
$binary = 1;
//-----------------------------------
// ASCII?
//-----------------------------------
if ( strstr( ' '.$this->non_binary.' ', ' '.$ext.' ' ) )
{
$binary = 0;
}
//-----------------------------------
// Get dir / filename
//-----------------------------------
$dir_path = array();
$dir_path = explode( "/", $filename );
if ( count( $dir_path ) )
{
$real_filename = array_pop( $dir_path );
}
$real_filename = $real_filename ? $real_filename : $filename;
$path = implode( "/", $dir_path );
if ( $this->strip_path )
{
$path = preg_replace( "#". preg_quote($this->strip_path, '#')."/?#", "", $path );
}
$this_array = array(
'filename' => $real_filename,
'content' => $data,
'path' => $path,
'binary' => $binary
);
foreach( $extra_tags as $k => $v )
{
if ( $k and ! in_array( $k, array_keys($this_array) ) )
{
$this_array[ $k ] = $v;
}
}
$this->file_array[] = $this_array;
}
/*-------------------------------------------------------------------------*/
// INTERNAL: Get directory contents
/*-------------------------------------------------------------------------*/
function _xml_get_dir_contents( $dir )
{
$dir = preg_replace( "#/$#", "", $dir );
if ( file_exists($dir) )
{
if ( is_dir($dir) )
{
$handle = opendir($dir);
while (($filename = readdir($handle)) !== false)
{
if (($filename != ".") && ($filename != ".."))
{
if ( is_dir( $dir."/".$filename ) )
{
//-----------------------------------
// Recurse
//-----------------------------------
$this->_xml_get_dir_contents($dir."/".$filename);
}
else
{
//-----------------------------------
// Add file to list
//-----------------------------------
$this->workfiles[] = $dir."/".$filename;
}
}
}
closedir($handle);
}
else
{
$this->error_number = '002';
return FALSE;
}
}
else
{
$this->error_number = '001';
return;
}
}
}
?>
File diff suppressed because it is too large. Load diff
+9 -1
View File
@@ -2,14 +2,22 @@
/*
+--------------------------------------------------------------------------
| Invision Power Board
| Invision Power Board 2.2.2
| =============================================
| by Matthew Mecham
| (c) 2001 - 2006 Invision Power Services, Inc.
| http://www.invisionpower.com
| =============================================
| Web: http://www.invisionboard.com
| http://www.ibresource.ru/products/invisionpowerboard/
| Time: Monday 05th of March 2007 10:10:55 PM
| Release: e3790216629e5a2aaf37070b32237f06
| Licence Info: http://www.invisionboard.com/?license
| http://www.ibresource.ru/license
+---------------------------------------------------------------------------
| INVISION POWER BOARD ÍÅ ßÂËßÅÒÑß ÁÅÑÏËÀÒÍÛÌ ÏÐÎÃÐÀÌÌÍÛÌ ÎÁÅÑÏÅ×ÅÍÈÅÌ!
| Ïðàâà íà ÏÎ ïðèíàäëåæàò Invision Power Services
| Ïðàâà íà ïåðåâîä IBResource (http://www.ibresource.ru)
+---------------------------------------------------------------------------
| > $Date: 2005-10-10 14:03:20 +0100 (Mon, 10 Oct 2005) $
| > $Revision: 22 $
+62 -9
View File
@@ -2,14 +2,22 @@
/*
+--------------------------------------------------------------------------
| Invision Power Board
| Invision Power Board 2.2.2
| =============================================
| by Matthew Mecham
| (c) 2001 - 2006 Invision Power Services, Inc.
| http://www.invisionpower.com
| =============================================
| Web: http://www.invisionboard.com
| http://www.ibresource.ru/products/invisionpowerboard/
| Time: Monday 05th of March 2007 10:10:55 PM
| Release: e3790216629e5a2aaf37070b32237f06
| Licence Info: http://www.invisionboard.com/?license
| http://www.ibresource.ru/license
+---------------------------------------------------------------------------
| INVISION POWER BOARD ÍÅ ßÂËßÅÒÑß ÁÅÑÏËÀÒÍÛÌ ÏÐÎÃÐÀÌÌÍÛÌ ÎÁÅÑÏÅ×ÅÍÈÅÌ!
| Ïðàâà íà ÏÎ ïðèíàäëåæàò Invision Power Services
| Ïðàâà íà ïåðåâîä IBResource (http://www.ibresource.ru)
+---------------------------------------------------------------------------
| > $Date: 2005-10-10 14:03:20 +0100 (Mon, 10 Oct 2005) $
| > $Revision: 22 $
@@ -35,6 +43,9 @@
+--------------------------------------------------------------------------
*/
define( 'IPS_TEMPLATE_DEBUG' , 0 );
define( 'IPS_TEMPLATE_DEBUG_FILE', dirname( _FILE_ ) . '/../cache/template_debug.cgi' );
/**
* Template Engine (NOT USED CURRENTLY: FOR IPB 3.0, IP.Dynamic)
*
@@ -113,9 +124,9 @@ class class_template
//-----------------------------------------
// Remove PHP tags
//-----------------------------------------
$data = preg_replace( "#<"."\?php\n?(.+?)\n?\?".">#is", "\\1", $data );
$data = preg_replace( "#<"."\?php\n+?(.+?)\n+?\?".">#is", "\\1", $data );
//-----------------------------------------
// Pick through and get all function names
//-----------------------------------------
@@ -174,7 +185,7 @@ class class_template
continue;
}
}
//-----------------------------------------
// Build the file...
//-----------------------------------------
@@ -211,6 +222,12 @@ class class_template
$this->foreach_blocks = array();
//-----------------------------------------
// Debug?
//-----------------------------------------
$this->_add_debug( "Preparing to convert: $func_name" . "\n" . $func_html );
//-------------------------------
// Make sure we have ="" on each
// func data
@@ -282,6 +299,12 @@ class class_template
$middle = preg_replace( "#<php>(.+?)</php>#si", "", $middle );
//-----------------------------------------
// Debug?
//-----------------------------------------
$this->_add_debug( "FINISHED: $func_name" . "\n" . $top.$start.$php_tags.$middle.$end );
//-------------------------------
// Return
//-------------------------------
@@ -731,7 +754,7 @@ EOF;
// Keep the server busy for a while
//----------------------------------------
while ( 1 == 1 )
while ( 1 )
{
//-----------------------------------------
// Update template length
@@ -747,6 +770,8 @@ EOF;
$found_if = strpos( $template, $tag_if, $found_end_if + 1 );
#$this->_add_debug( "Found <if>: $found_if" );
//----------------------------------------
// No logic found?
//----------------------------------------
@@ -779,7 +804,9 @@ EOF;
// End statement?
//----------------------------------------
$found_end_if = strpos($template, $tag_end_if, $_end + 3);
$found_end_if = strpos($template, $tag_end_if, $_start + 3);
#$this->_add_debug( "Found </if>: $found_end_if" );
//----------------------------------------
// No end statement found
@@ -848,7 +875,7 @@ EOF;
$if_found_recurse = $found_if;
while ( 1 == 1 )
while ( 1 )
{
//----------------------------------------
// Got an IF?
@@ -856,6 +883,8 @@ EOF;
$if_found_recurse = strpos( $template, $tag_if, $if_found_recurse + 1 );
#$this->_add_debug( "Found recurse <if>: $if_found_recurse" );
//----------------------------------------
// None found...
//----------------------------------------
@@ -872,6 +901,8 @@ EOF;
// None found...
//----------------------------------------
#$this->_add_debug( "Found recurse </if>: $found_end_if" );
if ( $found_end_if === FALSE )
{
return str_replace("\\'", "'", $template);
@@ -884,7 +915,7 @@ EOF;
// Handle the else tags
//----------------------------------------
while ( 1 == 1 )
while ( 1 )
{
//----------------------------------------
// None found...
@@ -1089,6 +1120,28 @@ EOF;
$code = str_replace( "\\'", "'", $code );
return $code;
}
/**
* Add debug message
*/
function _add_debug( $msg )
{
if ( IPS_TEMPLATE_DEBUG AND IPS_TEMPLATE_DEBUG_FILE )
{
$full_msg = "==================================================================\n"
. "Date: " . gmdate( 'r' ) . ' - ' . $_SERVER['REMOTE_ADDR'] . "\n"
. $msg . "\n"
. "==================================================================\n";
if ( $FH = @fopen( IPS_TEMPLATE_DEBUG_FILE, 'a+' ) )
{
fwrite( $FH, $full_msg, strlen( $full_msg ) );
fclose( $FH );
}
return TRUE;
}
}
}
+30 -2
View File
@@ -2,14 +2,22 @@
/*
+--------------------------------------------------------------------------
| Invision Power Board
| Invision Power Board 2.2.2
| =============================================
| by Matthew Mecham
| (c) 2001 - 2006 Invision Power Services, Inc.
| http://www.invisionpower.com
| =============================================
| Web: http://www.invisionboard.com
| http://www.ibresource.ru/products/invisionpowerboard/
| Time: Monday 05th of March 2007 10:10:55 PM
| Release: e3790216629e5a2aaf37070b32237f06
| Licence Info: http://www.invisionboard.com/?license
| http://www.ibresource.ru/license
+---------------------------------------------------------------------------
| INVISION POWER BOARD ÍÅ ßÂËßÅÒÑß ÁÅÑÏËÀÒÍÛÌ ÏÐÎÃÐÀÌÌÍÛÌ ÎÁÅÑÏÅ×ÅÍÈÅÌ!
| Ïðàâà íà ÏÎ ïðèíàäëåæàò Invision Power Services
| Ïðàâà íà ïåðåâîä IBResource (http://www.ibresource.ru)
+---------------------------------------------------------------------------
| > $Date: 2005-10-10 14:03:20 +0100 (Mon, 10 Oct 2005) $
| > $Revision: 22 $
@@ -271,6 +279,12 @@ class class_upload
return;
}
if( !is_uploaded_file($_FILES[ $this->upload_form_field ]['tmp_name']) )
{
$this->error_no = 1;
return;
}
//-------------------------------------------------
// De we have allowed file_extensions?
//-------------------------------------------------
@@ -343,7 +357,7 @@ class class_upload
if ( $this->make_script_safe )
{
if ( preg_match( "/\.(cgi|pl|js|asp|php|html|htm|jsp|jar)/", $FILE_NAME ) )
if ( preg_match( "/\.(cgi|pl|js|asp|php|html|htm|jsp|jar)$/i", $FILE_NAME ) )
{
$FILE_TYPE = 'text/plain';
$this->file_extension = 'txt';
@@ -429,6 +443,20 @@ class class_upload
}
}
}
//-------------------------------------------------
// If filesize and $_FILES['size'] don't match then
// either file is corrupt, or there was funny
// business between when it hit tmp and was moved
//-------------------------------------------------
if( filesize($this->saved_upload_name) != $_FILES[ $this->upload_form_field ]['size'] )
{
@unlink( $this->saved_upload_name );
$this->error_no = 1;
return;
}
}
/*-------------------------------------------------------------------------*/
+14 -6
View File
@@ -2,14 +2,22 @@
/*
+--------------------------------------------------------------------------
| Invision Power Board
| Invision Power Board 2.2.2
| =============================================
| by Matthew Mecham
| (c) 2001 - 2006 Invision Power Services, Inc.
| http://www.invisionpower.com
| =============================================
| Web: http://www.invisionboard.com
| http://www.ibresource.ru/products/invisionpowerboard/
| Time: Monday 05th of March 2007 10:10:55 PM
| Release: e3790216629e5a2aaf37070b32237f06
| Licence Info: http://www.invisionboard.com/?license
| http://www.ibresource.ru/license
+---------------------------------------------------------------------------
| INVISION POWER BOARD ÍÅ ßÂËßÅÒÑß ÁÅÑÏËÀÒÍÛÌ ÏÐÎÃÐÀÌÌÍÛÌ ÎÁÅÑÏÅ×ÅÍÈÅÌ!
| Ïðàâà íà ÏÎ ïðèíàäëåæàò Invision Power Services
| Ïðàâà íà ïåðåâîä IBResource (http://www.ibresource.ru)
+---------------------------------------------------------------------------
| > $Date: 2005-10-10 14:03:20 +0100 (Mon, 10 Oct 2005) $
| > $Revision: 22 $
@@ -197,7 +205,7 @@ class class_xml
*
* @ var string
*/
var $doc_type = 'ISO-8859-1';
var $doc_type = 'WINDOWS-1251';
/*-------------------------------------------------------------------------*/
// CONSTRUCTOR
@@ -205,7 +213,7 @@ class class_xml
function class_xml()
{
ini_set("memory_limit", "32M");
@ini_set("memory_limit", "128M");
//$this->header = '<?xml version="1.0" encoding="'.$this->doc_type.'"?'.'>';
}
@@ -260,7 +268,7 @@ class class_xml
xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE , 0);
xml_parse_into_struct($parser, $xml, $vals);
xml_parser_free($parser);
$this->xml_array = $this->_xml_get_children($vals, $i);
}
@@ -865,7 +873,7 @@ class xml_lite_parse
function my_cdata_element( &$parser_obj, $data )
{
$this->my_data_element( &$parser_obj, $data );
$this->my_data_element( $parser_obj, $data );
}
/*-------------------------------------------------------------------------*/
@@ -937,7 +945,7 @@ class xml_extract
// Strip off header, DOC TYPE, etc
//-----------------------------------------
$xml = preg_replace( "#^(?:.+?)?(<.*>)(?:.+?)?$#s", "\\1", $xml );
$xml = preg_replace( "#^(?:.*?)?(<.*>)(?:.*?)?$#s", "\\1", $xml );
$xml_strlen = strlen( $xml );
File diff suppressed because it is too large. Load diff
+34 -24
View File
@@ -1,15 +1,25 @@
<?php
/*
+--------------------------------------------------------------------------
| Invision Power Board
+---------------------------------------------------------------------------
| Invision Power Board 2.2.2
| =============================================
| by Matthew Mecham
| (c) 2001 - 2006 Invision Power Services, Inc.
| http://www.invisionpower.com
| =============================================
| Web: http://www.invisionboard.com
| http://www.ibresource.ru/products/invisionpowerboard/
| Time: Monday 05th of March 2007 10:10:55 PM
| Release: e3790216629e5a2aaf37070b32237f06
| Licence Info: http://www.invisionboard.com/?license
| http://www.ibresource.ru/license
+---------------------------------------------------------------------------
| INVISION POWER BOARD IS NOT FREE / OPEN SOURCE!
+---------------------------------------------------------------------------
| INVISION POWER BOARD ÍÅ ßÂËßÅÒÑß ÁÅÑÏËÀÒÍÛÌ ÏÐÎÃÐÀÌÌÍÛÌ ÎÁÅÑÏÅ×ÅÍÈÅÌ!
| Ïðàâà íà ÏÎ ïðèíàäëåæàò Invision Power Services
| Ïðàâà íà ïåðåâîä IBResource (http://www.ibresource.ru)
+---------------------------------------------------------------------------
| > $Date: 2005-10-10 14:03:20 +0100 (Mon, 10 Oct 2005) $
| > $Revision: 22 $
@@ -55,18 +65,6 @@
* @version 2.1
*/
/**
* Write to debug file?
* Enter relative / full path into the constant below
* Remove contents to turn off debugging.
* WARNING: If you are passing passwords and such via XML_RPC
* AND wish to debug, ensure that the debug file ends with .php
* to prevent it loading as plain text via HTTP which would show
* the entire contents of the file.
*/
define( 'IPS_XML_RPC_DEBUG_ON' , 1 );
define( 'IPS_XML_RPC_DEBUG_FILE', dirname( __FILE__ ) . '/../cache/debug.php' );
/**
* XML Creation and Extraction Functions
*
@@ -162,7 +160,7 @@ class class_xml_rpc
if ( IPS_XML_RPC_DEBUG_ON )
{
$this->_add_debug( "DECODING XML data: " . substr( $_xml, 0, 300 ) );
$this->_add_debug( "DECODING XML data: " . $_xml );
$this->_add_debug( "DECODE RESULT XML data: " . var_export( $data, TRUE ) );
}
@@ -353,7 +351,7 @@ class class_xml_rpc
if ( IPS_XML_RPC_DEBUG_ON )
{
$this->_add_debug( "SENDING XML data: " . substr( $xmldata, 0, 300 ) );
$this->_add_debug( "SENDING XML data: " . $xmldata );
}
//-----------------------------------------
@@ -615,7 +613,7 @@ class class_xml_rpc
if ( ! $url_parts['host'] )
{
$this->errors[] = "No host found in the URL '$file_location'!";
$this->errors[] = "Íå íàéäåí õîñò â çàäàííîì URL '$file_location'!";
return FALSE;
}
@@ -627,6 +625,16 @@ class class_xml_rpc
$port = ( isset($url_parts['port']) ) ? $url_parts['port'] : 80;
//-----------------------------------------
// User and pass?
//-----------------------------------------
if ( ! $this->auth_user AND $url_parts['user'] )
{
$this->auth_user = $url_parts['user'];
$this->auth_pass = $url_parts['pass'];
}
//-------------------------------
// Tidy up path
//-------------------------------
@@ -647,7 +655,7 @@ class class_xml_rpc
if ( ! $fp = @fsockopen( $host, $port, $errno, $errstr, $fsocket_timeout ) )
{
$this->errors[] = "CONNECTION REFUSED FROM $host";
$this->errors[] = "Ñîåäèíåíèå ïðåðâàíî óäàëåííûì ñåðâåðîì $host";
return FALSE;
}
@@ -669,7 +677,7 @@ class class_xml_rpc
if ( ! fputs( $fp, $header . $xmldata ) )
{
$this->errors[] = "Unable to send request to $host!";
$this->errors[] = "Íå âîçìîæíî îòïðàâèòü çàïðîñ óäàëåííîìó ñåðâåðó $host!";
return FALSE;
}
}
@@ -699,7 +707,7 @@ class class_xml_rpc
if ( IPS_XML_RPC_DEBUG_ON )
{
$this->_add_debug( "POST RESPONSE: " . substr( $data, 0, 300 ) );
$this->_add_debug( "POST RESPONSE to $host{$path}: " . $data );
}
//-----------------------------------------
@@ -748,16 +756,18 @@ class class_xml_rpc
*/
function _add_debug( $msg )
{
if ( IPS_XML_RPC_DEBUG_FILE AND file_exists( IPS_XML_RPC_DEBUG_FILE ) )
if ( IPS_XML_RPC_DEBUG_FILE AND IPS_XML_RPC_DEBUG_ON )
{
$full_msg = "==================================================================\n"
. "SCRIPT NAME: " . $_SERVER["SCRIPT_NAME"] . "\n"
. gmdate( 'r' ) . ' - ' . $_SERVER['REMOTE_ADDR'] . ' - ' . $msg . "\n"
. "==================================================================\n";
$FH = fopen( IPS_XML_RPC_DEBUG_FILE, 'a+' );
fwrite( $FH, $full_msg, strlen( $full_msg ) );
fclose( $FH );
if ( $FH = @fopen( IPS_XML_RPC_DEBUG_FILE, 'a+' ) )
{
fwrite( $FH, $full_msg, strlen( $full_msg ) );
fclose( $FH );
}
return TRUE;
}
+9 -1
View File
@@ -2,14 +2,22 @@
/*
+--------------------------------------------------------------------------
| Invision Power Board
| Invision Power Board 2.2.2
| =============================================
| by Matthew Mecham
| (c) 2001 - 2006 Invision Power Services, Inc.
| http://www.invisionpower.com
| =============================================
| Web: http://www.invisionboard.com
| http://www.ibresource.ru/products/invisionpowerboard/
| Time: Monday 05th of March 2007 10:10:55 PM
| Release: e3790216629e5a2aaf37070b32237f06
| Licence Info: http://www.invisionboard.com/?license
| http://www.ibresource.ru/license
+---------------------------------------------------------------------------
| INVISION POWER BOARD ÍÅ ßÂËßÅÒÑß ÁÅÑÏËÀÒÍÛÌ ÏÐÎÃÐÀÌÌÍÛÌ ÎÁÅÑÏÅ×ÅÍÈÅÌ!
| Ïðàâà íà ÏÎ ïðèíàäëåæàò Invision Power Services
| Ïðàâà íà ïåðåâîä IBResource (http://www.ibresource.ru)
+---------------------------------------------------------------------------
| > $Date: 2005-10-10 14:03:20 +0100 (Mon, 10 Oct 2005) $
| > $Revision: 22 $
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,140 @@
#
# Armenian Standard Code for Information Interchange (ArmSCII)
# 7-bit coding table, ArmSCII-7
# Based on "Armenian Character Sets: Implementation Guide"
# http://www.freenet.am/armscii
#
# Hovik Melikyan
# hovik@moon.yerphi.am
# 12 November 2000
#
# $Id: ARMSCII-7.TXT,v 1.1 2000/11/13 15:43:45 mleisher Exp $
#
0x00 0x0000 # <control>
0x01 0x0001 # <control>
0x02 0x0002 # <control>
0x03 0x0003 # <control>
0x04 0x0004 # <control>
0x05 0x0005 # <control>
0x06 0x0006 # <control>
0x07 0x0007 # <control>
0x08 0x0008 # <control>
0x09 0x0009 # <control>
0x0A 0x000A # <control>
0x0B 0x000B # <control>
0x0C 0x000C # <control>
0x0D 0x000D # <control>
0x0E 0x000E # <control>
0x0F 0x000F # <control>
0x10 0x0010 # <control>
0x11 0x0011 # <control>
0x12 0x0012 # <control>
0x13 0x0013 # <control>
0x14 0x0014 # <control>
0x15 0x0015 # <control>
0x16 0x0016 # <control>
0x17 0x0017 # <control>
0x18 0x0018 # <control>
0x19 0x0019 # <control>
0x1A 0x001A # <control>
0x1B 0x001B # <control>
0x1C 0x001C # <control>
0x1D 0x001D # <control>
0x1E 0x001E # <control>
0x1F 0x001F # <control>
0x20 0x0020 # SPACE
0x21 0x0530 # ARMENIAN ETERNITY SIGN
0x22 0x0587 # ARMENIAN LIGATURE EW
0x23 0x0589 # ARMENIAN FULL STOP
0x24 0x0029 # ARMENIAN RIGHT PARENTHESIS
0x25 0x0028 # ARMENIAN LEFT PARENTHESIS
0x26 0x00BB # ARMENIAN RIGHT QUOTATION MARK
0x27 0x00AB # ARMENIAN LEFT QUOTATION MARK
0x28 0x2014 # ARMENIAN EM DASH
0x29 0x002E # ARMENIAN DOT
0x2A 0x055D # ARMENIAN SEPARATION MARK
0x2B 0x002C # ARMENIAN COMMA
0x2C 0x002D # ARMENIAN EN DASH
0x2D 0x058A # ARMENIAN HYPHEN
0x2E 0x2026 # ARMENIAN ELLIPSIS
0x2F 0x055C # ARMENIAN EXCLAMATION MARK
0x30 0x055B # ARMENIAN ACCENT
0x31 0x055E # ARMENIAN QUESTION MARK
0x32 0x0531 # ARMENIAN CAPITAL LETTER AYB
0x33 0x0561 # ARMENIAN SMALL LETTER AYB
0x34 0x0532 # ARMENIAN CAPITAL LETTER BEN
0x35 0x0562 # ARMENIAN SMALL LETTER BEN
0x36 0x0533 # ARMENIAN CAPITAL LETTER GIM
0x37 0x0563 # ARMENIAN SMALL LETTER GIM
0x38 0x0534 # ARMENIAN CAPITAL LETTER DA
0x39 0x0564 # ARMENIAN SMALL LETTER DA
0x3A 0x0535 # ARMENIAN CAPITAL LETTER YECH
0x3B 0x0565 # ARMENIAN SMALL LETTER YECH
0x3C 0x0536 # ARMENIAN CAPITAL LETTER ZA
0x3D 0x0566 # ARMENIAN SMALL LETTER ZA
0x3E 0x0537 # ARMENIAN CAPITAL LETTER E
0x3F 0x0567 # ARMENIAN SMALL LETTER E
0x40 0x0538 # ARMENIAN CAPITAL LETTER AT
0x41 0x0568 # ARMENIAN SMALL LETTER AT
0x42 0x0539 # ARMENIAN CAPITAL LETTER TO
0x43 0x0569 # ARMENIAN SMALL LETTER TO
0x44 0x053A # ARMENIAN CAPITAL LETTER ZHE
0x45 0x056A # ARMENIAN SMALL LETTER ZHE
0x46 0x053B # ARMENIAN CAPITAL LETTER INI
0x47 0x056B # ARMENIAN SMALL LETTER INI
0x48 0x053C # ARMENIAN CAPITAL LETTER LYUN
0x49 0x056C # ARMENIAN SMALL LETTER LYUN
0x4A 0x053D # ARMENIAN CAPITAL LETTER KHE
0x4B 0x056D # ARMENIAN SMALL LETTER KHE
0x4C 0x053E # ARMENIAN CAPITAL LETTER TSA
0x4D 0x056E # ARMENIAN SMALL LETTER TSA
0x4E 0x053F # ARMENIAN CAPITAL LETTER KEN
0x4F 0x056F # ARMENIAN SMALL LETTER KEN
0x50 0x0540 # ARMENIAN CAPITAL LETTER HO
0x51 0x0570 # ARMENIAN SMALL LETTER HO
0x52 0x0541 # ARMENIAN CAPITAL LETTER DZA
0x53 0x0571 # ARMENIAN SMALL LETTER DZA
0x54 0x0542 # ARMENIAN CAPITAL LETTER GHAT
0x55 0x0572 # ARMENIAN SMALL LETTER GHAT
0x56 0x0543 # ARMENIAN CAPITAL LETTER TCHE
0x57 0x0573 # ARMENIAN SMALL LETTER TCHE
0x58 0x0544 # ARMENIAN CAPITAL LETTER MEN
0x59 0x0574 # ARMENIAN SMALL LETTER MEN
0x5A 0x0545 # ARMENIAN CAPITAL LETTER HI
0x5B 0x0575 # ARMENIAN SMALL LETTER HI
0x5C 0x0546 # ARMENIAN CAPITAL LETTER NU
0x5D 0x0576 # ARMENIAN SMALL LETTER NU
0x5E 0x0547 # ARMENIAN CAPITAL LETTER SHA
0x5F 0x0577 # ARMENIAN SMALL LETTER SHA
0x60 0x0548 # ARMENIAN CAPITAL LETTER VO
0x61 0x0578 # ARMENIAN SMALL LETTER VO
0x62 0x0549 # ARMENIAN CAPITAL LETTER CHA
0x63 0x0579 # ARMENIAN SMALL LETTER CHA
0x64 0x054A # ARMENIAN CAPITAL LETTER PE
0x65 0x057A # ARMENIAN SMALL LETTER PE
0x66 0x054B # ARMENIAN CAPITAL LETTER JE
0x67 0x057B # ARMENIAN SMALL LETTER JE
0x68 0x054C # ARMENIAN CAPITAL LETTER RA
0x69 0x057C # ARMENIAN SMALL LETTER RA
0x6A 0x054D # ARMENIAN CAPITAL LETTER SE
0x6B 0x057D # ARMENIAN SMALL LETTER SE
0x6C 0x054E # ARMENIAN CAPITAL LETTER VEV
0x6D 0x057E # ARMENIAN SMALL LETTER VEV
0x6E 0x054F # ARMENIAN CAPITAL LETTER TYUN
0x6F 0x057F # ARMENIAN SMALL LETTER TYUN
0x70 0x0550 # ARMENIAN CAPITAL LETTER RE
0x71 0x0580 # ARMENIAN SMALL LETTER RE
0x72 0x0551 # ARMENIAN CAPITAL LETTER TSO
0x73 0x0581 # ARMENIAN SMALL LETTER TSO
0x74 0x0552 # ARMENIAN CAPITAL LETTER VYUN
0x75 0x0582 # ARMENIAN SMALL LETTER VYUN
0x76 0x0553 # ARMENIAN CAPITAL LETTER PYUR
0x77 0x0583 # ARMENIAN SMALL LETTER PYUR
0x78 0x0554 # ARMENIAN CAPITAL LETTER KE
0x79 0x0584 # ARMENIAN SMALL LETTER KE
0x7A 0x0555 # ARMENIAN CAPITAL LETTER O
0x7B 0x0585 # ARMENIAN SMALL LETTER O
0x7C 0x0556 # ARMENIAN CAPITAL LETTER FE
0x7D 0x0586 # ARMENIAN SMALL LETTER FE
0x7E 0x055A # ARMENIAN APOSTROPHE
0x7F 0x0027 # <control>
@@ -0,0 +1,268 @@
#
# Armenian Standard Code for Information Interchange (ArmSCII)
# 8-bit coding table, ArmSCII-8
# Based on "Armenian Character Sets: Implementation Guide"
# http://www.freenet.am/armscii
#
# Hovik Melikyan
# hovik@moon.yerphi.am
# 12 November 2000
#
# $Id: ARMSCII-8.TXT,v 1.2 2005/07/19 18:10:29 mleisher Exp $
#
0x00 0x0000 # <control>
0x01 0x0001 # <control>
0x02 0x0002 # <control>
0x03 0x0003 # <control>
0x04 0x0004 # <control>
0x05 0x0005 # <control>
0x06 0x0006 # <control>
0x07 0x0007 # <control>
0x08 0x0008 # <control>
0x09 0x0009 # <control>
0x0A 0x000A # <control>
0x0B 0x000B # <control>
0x0C 0x000C # <control>
0x0D 0x000D # <control>
0x0E 0x000E # <control>
0x0F 0x000F # <control>
0x10 0x0010 # <control>
0x11 0x0011 # <control>
0x12 0x0012 # <control>
0x13 0x0013 # <control>
0x14 0x0014 # <control>
0x15 0x0015 # <control>
0x16 0x0016 # <control>
0x17 0x0017 # <control>
0x18 0x0018 # <control>
0x19 0x0019 # <control>
0x1A 0x001A # <control>
0x1B 0x001B # <control>
0x1C 0x001C # <control>
0x1D 0x001D # <control>
0x1E 0x001E # <control>
0x1F 0x001F # <control>
0x20 0x0020 # SPACE
0x21 0x0021 # EXCLAMATION MARK
0x22 0x0022 # QUOTATION MARK
0x23 0x0023 # NUMBER SIGN
0x24 0x0024 # DOLLAR SIGN
0x25 0x0025 # PERCENT SIGN
0x26 0x0026 # AMPERSAND
0x27 0x0027 # APOSTROPHE
0x28 0x0028 # LEFT PARENTHESIS
0x29 0x0029 # RIGHT PARENTHESIS
0x2A 0x002A # ASTERISK
0x2B 0x002B # PLUS SIGN
0x2C 0x002C # COMMA
0x2D 0x002D # HYPHEN-MINUS
0x2E 0x002E # FULL STOP
0x2F 0x002F # SOLIDUS
0x30 0x0030 # DIGIT ZERO
0x31 0x0031 # DIGIT ONE
0x32 0x0032 # DIGIT TWO
0x33 0x0033 # DIGIT THREE
0x34 0x0034 # DIGIT FOUR
0x35 0x0035 # DIGIT FIVE
0x36 0x0036 # DIGIT SIX
0x37 0x0037 # DIGIT SEVEN
0x38 0x0038 # DIGIT EIGHT
0x39 0x0039 # DIGIT NINE
0x3A 0x003A # COLON
0x3B 0x003B # SEMICOLON
0x3C 0x003C # LESS-THAN SIGN
0x3D 0x003D # EQUALS SIGN
0x3E 0x003E # GREATER-THAN SIGN
0x3F 0x003F # QUESTION MARK
0x40 0x0040 # COMMERCIAL AT
0x41 0x0041 # LATIN CAPITAL LETTER A
0x42 0x0042 # LATIN CAPITAL LETTER B
0x43 0x0043 # LATIN CAPITAL LETTER C
0x44 0x0044 # LATIN CAPITAL LETTER D
0x45 0x0045 # LATIN CAPITAL LETTER E
0x46 0x0046 # LATIN CAPITAL LETTER F
0x47 0x0047 # LATIN CAPITAL LETTER G
0x48 0x0048 # LATIN CAPITAL LETTER H
0x49 0x0049 # LATIN CAPITAL LETTER I
0x4A 0x004A # LATIN CAPITAL LETTER J
0x4B 0x004B # LATIN CAPITAL LETTER K
0x4C 0x004C # LATIN CAPITAL LETTER L
0x4D 0x004D # LATIN CAPITAL LETTER M
0x4E 0x004E # LATIN CAPITAL LETTER N
0x4F 0x004F # LATIN CAPITAL LETTER O
0x50 0x0050 # LATIN CAPITAL LETTER P
0x51 0x0051 # LATIN CAPITAL LETTER Q
0x52 0x0052 # LATIN CAPITAL LETTER R
0x53 0x0053 # LATIN CAPITAL LETTER S
0x54 0x0054 # LATIN CAPITAL LETTER T
0x55 0x0055 # LATIN CAPITAL LETTER U
0x56 0x0056 # LATIN CAPITAL LETTER V
0x57 0x0057 # LATIN CAPITAL LETTER W
0x58 0x0058 # LATIN CAPITAL LETTER X
0x59 0x0059 # LATIN CAPITAL LETTER Y
0x5A 0x005A # LATIN CAPITAL LETTER Z
0x5B 0x005B # LEFT SQUARE BRACKET
0x5C 0x005C # REVERSE SOLIDUS
0x5D 0x005D # RIGHT SQUARE BRACKET
0x5E 0x005E # CIRCUMFLEX ACCENT
0x5F 0x005F # LOW LINE
0x60 0x0060 # GRAVE ACCENT
0x61 0x0061 # LATIN SMALL LETTER A
0x62 0x0062 # LATIN SMALL LETTER B
0x63 0x0063 # LATIN SMALL LETTER C
0x64 0x0064 # LATIN SMALL LETTER D
0x65 0x0065 # LATIN SMALL LETTER E
0x66 0x0066 # LATIN SMALL LETTER F
0x67 0x0067 # LATIN SMALL LETTER G
0x68 0x0068 # LATIN SMALL LETTER H
0x69 0x0069 # LATIN SMALL LETTER I
0x6A 0x006A # LATIN SMALL LETTER J
0x6B 0x006B # LATIN SMALL LETTER K
0x6C 0x006C # LATIN SMALL LETTER L
0x6D 0x006D # LATIN SMALL LETTER M
0x6E 0x006E # LATIN SMALL LETTER N
0x6F 0x006F # LATIN SMALL LETTER O
0x70 0x0070 # LATIN SMALL LETTER P
0x71 0x0071 # LATIN SMALL LETTER Q
0x72 0x0072 # LATIN SMALL LETTER R
0x73 0x0073 # LATIN SMALL LETTER S
0x74 0x0074 # LATIN SMALL LETTER T
0x75 0x0075 # LATIN SMALL LETTER U
0x76 0x0076 # LATIN SMALL LETTER V
0x77 0x0077 # LATIN SMALL LETTER W
0x78 0x0078 # LATIN SMALL LETTER X
0x79 0x0079 # LATIN SMALL LETTER Y
0x7A 0x007A # LATIN SMALL LETTER Z
0x7B 0x007B # LEFT CURLY BRACKET
0x7C 0x007C # VERTICAL LINE
0x7D 0x007D # RIGHT CURLY BRACKET
0x7E 0x007E # TILDE
0x7F 0x007F # <control>
0x80 0x0080 # <control>
0x81 0x0081 # <control>
0x82 0x0082 # <control>
0x83 0x0083 # <control>
0x84 0x0084 # <control>
0x85 0x0085 # <control>
0x86 0x0086 # <control>
0x87 0x0087 # <control>
0x88 0x0088 # <control>
0x89 0x0089 # <control>
0x8A 0x008A # <control>
0x8B 0x008B # <control>
0x8C 0x008C # <control>
0x8D 0x008D # <control>
0x8E 0x008E # <control>
0x8F 0x008F # <control>
0x90 0x0090 # <control>
0x91 0x0091 # <control>
0x92 0x0092 # <control>
0x93 0x0093 # <control>
0x94 0x0094 # <control>
0x95 0x0095 # <control>
0x96 0x0096 # <control>
0x97 0x0097 # <control>
0x98 0x0098 # <control>
0x99 0x0099 # <control>
0x9A 0x009A # <control>
0x9B 0x009B # <control>
0x9C 0x009C # <control>
0x9D 0x009D # <control>
0x9E 0x009E # <control>
0x9F 0x009F # <control>
0xA0 0x00A0 # NO-BREAK SPACE
0xA1 0x0530 # ARMENIAN ETERNITY SIGN
0xA2 0x0587 # ARMENIAN LIGATURE EW
0xA3 0x0589 # ARMENIAN FULL STOP
0xA4 0x0029 # ARMENIAN RIGHT PARENTHESIS
0xA5 0x0028 # ARMENIAN LEFT PARENTHESIS
0xA6 0x00BB # ARMENIAN RIGHT QUOTATION MARK
0xA7 0x00AB # ARMENIAN LEFT QUOTATION MARK
0xA8 0x2014 # ARMENIAN EM DASH
0xA9 0x002E # ARMENIAN DOT
0xAA 0x055D # ARMENIAN SEPARATION MARK
0xAB 0x002C # ARMENIAN COMMA
0xAC 0x002D # ARMENIAN EN DASH
0xAD 0x058A # ARMENIAN HYPHEN
0xAE 0x2026 # ARMENIAN ELLIPSIS
0xAF 0x055C # ARMENIAN EXCLAMATION MARK
0xB0 0x055B # ARMENIAN ACCENT
0xB1 0x055E # ARMENIAN QUESTION MARK
0xB2 0x0531 # ARMENIAN CAPITAL LETTER AYB
0xB3 0x0561 # ARMENIAN SMALL LETTER AYB
0xB4 0x0532 # ARMENIAN CAPITAL LETTER BEN
0xB5 0x0562 # ARMENIAN SMALL LETTER BEN
0xB6 0x0533 # ARMENIAN CAPITAL LETTER GIM
0xB7 0x0563 # ARMENIAN SMALL LETTER GIM
0xB8 0x0534 # ARMENIAN CAPITAL LETTER DA
0xB9 0x0564 # ARMENIAN SMALL LETTER DA
0xBA 0x0535 # ARMENIAN CAPITAL LETTER YECH
0xBB 0x0565 # ARMENIAN SMALL LETTER YECH
0xBC 0x0536 # ARMENIAN CAPITAL LETTER ZA
0xBD 0x0566 # ARMENIAN SMALL LETTER ZA
0xBE 0x0537 # ARMENIAN CAPITAL LETTER E
0xBF 0x0567 # ARMENIAN SMALL LETTER E
0xC0 0x0538 # ARMENIAN CAPITAL LETTER AT
0xC1 0x0568 # ARMENIAN SMALL LETTER AT
0xC2 0x0539 # ARMENIAN CAPITAL LETTER TO
0xC3 0x0569 # ARMENIAN SMALL LETTER TO
0xC4 0x053A # ARMENIAN CAPITAL LETTER ZHE
0xC5 0x056A # ARMENIAN SMALL LETTER ZHE
0xC6 0x053B # ARMENIAN CAPITAL LETTER INI
0xC7 0x056B # ARMENIAN SMALL LETTER INI
0xC8 0x053C # ARMENIAN CAPITAL LETTER LYUN
0xC9 0x056C # ARMENIAN SMALL LETTER LYUN
0xCA 0x053D # ARMENIAN CAPITAL LETTER KHE
0xCB 0x056D # ARMENIAN SMALL LETTER KHE
0xCC 0x053E # ARMENIAN CAPITAL LETTER TSA
0xCD 0x056E # ARMENIAN SMALL LETTER TSA
0xCE 0x053F # ARMENIAN CAPITAL LETTER KEN
0xCF 0x056F # ARMENIAN SMALL LETTER KEN
0xD0 0x0540 # ARMENIAN CAPITAL LETTER HO
0xD1 0x0570 # ARMENIAN SMALL LETTER HO
0xD2 0x0541 # ARMENIAN CAPITAL LETTER DZA
0xD3 0x0571 # ARMENIAN SMALL LETTER DZA
0xD4 0x0542 # ARMENIAN CAPITAL LETTER GHAT
0xD5 0x0572 # ARMENIAN SMALL LETTER GHAT
0xD6 0x0543 # ARMENIAN CAPITAL LETTER TCHE
0xD7 0x0573 # ARMENIAN SMALL LETTER TCHE
0xD8 0x0544 # ARMENIAN CAPITAL LETTER MEN
0xD9 0x0574 # ARMENIAN SMALL LETTER MEN
0xDA 0x0545 # ARMENIAN CAPITAL LETTER HI
0xDB 0x0575 # ARMENIAN SMALL LETTER HI
0xDC 0x0546 # ARMENIAN CAPITAL LETTER NU
0xDD 0x0576 # ARMENIAN SMALL LETTER NU
0xDE 0x0547 # ARMENIAN CAPITAL LETTER SHA
0xDF 0x0577 # ARMENIAN SMALL LETTER SHA
0xE0 0x0548 # ARMENIAN CAPITAL LETTER VO
0xE1 0x0578 # ARMENIAN SMALL LETTER VO
0xE2 0x0549 # ARMENIAN CAPITAL LETTER CHA
0xE3 0x0579 # ARMENIAN SMALL LETTER CHA
0xE4 0x054A # ARMENIAN CAPITAL LETTER PE
0xE5 0x057A # ARMENIAN SMALL LETTER PE
0xE6 0x054B # ARMENIAN CAPITAL LETTER JE
0xE7 0x057B # ARMENIAN SMALL LETTER JE
0xE8 0x054C # ARMENIAN CAPITAL LETTER RA
0xE9 0x057C # ARMENIAN SMALL LETTER RA
0xEA 0x054D # ARMENIAN CAPITAL LETTER SE
0xEB 0x057D # ARMENIAN SMALL LETTER SE
0xEC 0x054E # ARMENIAN CAPITAL LETTER VEV
0xED 0x057E # ARMENIAN SMALL LETTER VEV
0xEE 0x054F # ARMENIAN CAPITAL LETTER TYUN
0xEF 0x057F # ARMENIAN SMALL LETTER TYUN
0xF0 0x0550 # ARMENIAN CAPITAL LETTER RE
0xF1 0x0580 # ARMENIAN SMALL LETTER RE
0xF2 0x0551 # ARMENIAN CAPITAL LETTER TSO
0xF3 0x0581 # ARMENIAN SMALL LETTER TSO
0xF4 0x0552 # ARMENIAN CAPITAL LETTER VYUN
0xF5 0x0582 # ARMENIAN SMALL LETTER VYUN
0xF6 0x0553 # ARMENIAN CAPITAL LETTER PYUR
0xF7 0x0583 # ARMENIAN SMALL LETTER PYUR
0xF8 0x0554 # ARMENIAN CAPITAL LETTER KE
0xF9 0x0584 # ARMENIAN SMALL LETTER KE
0xFA 0x0555 # ARMENIAN CAPITAL LETTER O
0xFB 0x0585 # ARMENIAN SMALL LETTER O
0xFC 0x0556 # ARMENIAN CAPITAL LETTER FE
0xFD 0x0586 # ARMENIAN SMALL LETTER FE
0xFE 0x055A # ARMENIAN APOSTROPHE
0xFF 0x0027 # APOSTROPHE
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,256 @@
0x00 0x0000
0x01 0x0001
0x02 0x0002
0x03 0x0003
0x04 0x0004
0x05 0x0005
0x06 0x0006
0x07 0x0007
0x08 0x0008
0x09 0x0009
0x0A 0x000A
0x0B 0x000B
0x0C 0x000C
0x0D 0x000D
0x0E 0x000E
0x0F 0x000F
0x10 0x0010
0x11 0x0011
0x12 0x0012
0x13 0x0013
0x14 0x0014
0x15 0x0015
0x16 0x0016
0x17 0x0017
0x18 0x0018
0x19 0x0019
0x1A 0x001C
0x1B 0x001B
0x1C 0x007F
0x1D 0x001D
0x1E 0x001E
0x1F 0x001F
0x20 0x0020
0x21 0x0021
0x22 0x0022
0x23 0x0023
0x24 0x0024
0x25 0x0025
0x26 0x0026
0x27 0x0027
0x28 0x0028
0x29 0x0029
0x2A 0x002A
0x2B 0x002B
0x2C 0x002C
0x2D 0x002D
0x2E 0x002E
0x2F 0x002F
0x30 0x0030
0x31 0x0031
0x32 0x0032
0x33 0x0033
0x34 0x0034
0x35 0x0035
0x36 0x0036
0x37 0x0037
0x38 0x0038
0x39 0x0039
0x3A 0x003A
0x3B 0x003B
0x3C 0x003C
0x3D 0x003D
0x3E 0x003E
0x3F 0x003F
0x40 0x0040
0x41 0x0041
0x42 0x0042
0x43 0x0043
0x44 0x0044
0x45 0x0045
0x46 0x0046
0x47 0x0047
0x48 0x0048
0x49 0x0049
0x4A 0x004A
0x4B 0x004B
0x4C 0x004C
0x4D 0x004D
0x4E 0x004E
0x4F 0x004F
0x50 0x0050
0x51 0x0051
0x52 0x0052
0x53 0x0053
0x54 0x0054
0x55 0x0055
0x56 0x0056
0x57 0x0057
0x58 0x0058
0x59 0x0059
0x5A 0x005A
0x5B 0x005B
0x5C 0x005C
0x5D 0x005D
0x5E 0x005E
0x5F 0x005F
0x60 0x0060
0x61 0x0061
0x62 0x0062
0x63 0x0063
0x64 0x0064
0x65 0x0065
0x66 0x0066
0x67 0x0067
0x68 0x0068
0x69 0x0069
0x6A 0x006A
0x6B 0x006B
0x6C 0x006C
0x6D 0x006D
0x6E 0x006E
0x6F 0x006F
0x70 0x0070
0x71 0x0071
0x72 0x0072
0x73 0x0073
0x74 0x0074
0x75 0x0075
0x76 0x0076
0x77 0x0077
0x78 0x0078
0x79 0x0079
0x7A 0x007A
0x7B 0x007B
0x7C 0x007C
0x7D 0x007D
0x7E 0x007E
0x7F 0x001A
0x80 0x0410
0x81 0x0411
0x82 0x0412
0x83 0x0413
0x84 0x0414
0x85 0x0415
0x86 0x0416
0x87 0x0417
0x88 0x0418
0x89 0x0419
0x8A 0x041A
0x8B 0x041B
0x8C 0x041C
0x8D 0x041D
0x8E 0x041E
0x8F 0x041F
0x90 0x0420
0x91 0x0421
0x92 0x0422
0x93 0x0423
0x94 0x0424
0x95 0x0425
0x96 0x0426
0x97 0x0427
0x98 0x0428
0x99 0x0429
0x9A 0x042A
0x9B 0x042B
0x9C 0x042C
0x9D 0x042D
0x9E 0x042E
0x9F 0x042F
0xA0 0x0430
0xA1 0x0431
0xA2 0x0432
0xA3 0x0433
0xA4 0x0434
0xA5 0x0435
0xA6 0x0436
0xA7 0x0437
0xA8 0x0438
0xA9 0x0439
0xAA 0x043A
0xAB 0x043B
0xAC 0x043C
0xAD 0x043D
0xAE 0x043E
0xAF 0x043F
0xB0 0x2591
0xB1 0x2592
0xB2 0x2593
0xB3 0x2502
0xB4 0x2524
0xB5 0x2561
0xB6 0x2562
0xB7 0x2556
0xB8 0x2555
0xB9 0x2563
0xBA 0x2551
0xBB 0x2557
0xBC 0x255D
0xBD 0x255C
0xBE 0x255B
0xBF 0x2510
0xC0 0x2514
0xC1 0x2534
0xC2 0x252C
0xC3 0x251C
0xC4 0x2500
0xC5 0x253C
0xC6 0x255E
0xC7 0x255F
0xC8 0x255A
0xC9 0x2554
0xCA 0x2569
0xCB 0x2566
0xCC 0x2560
0xCD 0x2550
0xCE 0x256C
0xCF 0x2567
0xD0 0x2568
0xD1 0x2564
0xD2 0x2565
0xD3 0x2559
0xD4 0x2558
0xD5 0x2552
0xD6 0x2553
0xD7 0x256B
0xD8 0x256A
0xD9 0x2518
0xDA 0x250C
0xDB 0x2588
0xDC 0x2584
0xDD 0x258C
0xDE 0x2590
0xDF 0x2580
0xE0 0x0440
0xE1 0x0441
0xE2 0x0442
0xE3 0x0443
0xE4 0x0444
0xE5 0x0445
0xE6 0x0446
0xE7 0x0447
0xE8 0x0448
0xE9 0x0449
0xEA 0x044A
0xEB 0x044B
0xEC 0x044C
0xED 0x044D
0xEE 0x044E
0xEF 0x044F
0xF0 0x0401
0xF1 0x0451
0xF2 0x0404
0xF3 0x0454
0xF4 0x0407
0xF5 0x0457
0xF6 0x040E
0xF7 0x045E
0xF8 0x0406
0xF9 0x0456
0xFA 0x00B7
0xFB 0x00A4
0xFC 0x0490
0xFD 0x0491
0xFE 0x2219
0xFF 0x00A0
@@ -0,0 +1,261 @@
#
# $Id: CP1133.TXT,v 1.1 1999/12/06 16:18:01 mleisher Exp $
#
# Copyright 1999 Computing Research Labs, New Mexico State University
#
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the "Software"),
# to deal in the Software without restriction, including without limitation
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
# and/or sell copies of the Software, and to permit persons to whom the
# Software is furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
# THE COMPUTING RESEARCH LAB OR NEW MEXICO STATE UNIVERSITY BE LIABLE FOR ANY
# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT
# OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
# THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
#
# IBM Lao codepage 1133. Typed in by hand from the image at:
# http://www.unicode.org/pending/lao/cp01133.gif
#
# Mark Leisher <mleisher@crl.nmsu.edu>
# 29 November 1999
#
0x00 0x0000 # <control>
0x01 0x0001 # <control>
0x02 0x0002 # <control>
0x03 0x0003 # <control>
0x04 0x0004 # <control>
0x05 0x0005 # <control>
0x06 0x0006 # <control>
0x07 0x0007 # <control>
0x08 0x0008 # <control>
0x09 0x0009 # <control>
0x0A 0x000A # <control>
0x0B 0x000B # <control>
0x0C 0x000C # <control>
0x0D 0x000D # <control>
0x0E 0x000E # <control>
0x0F 0x000F # <control>
0x10 0x0010 # <control>
0x11 0x0011 # <control>
0x12 0x0012 # <control>
0x13 0x0013 # <control>
0x14 0x0014 # <control>
0x15 0x0015 # <control>
0x16 0x0016 # <control>
0x17 0x0017 # <control>
0x18 0x0018 # <control>
0x19 0x0019 # <control>
0x1A 0x001A # <control>
0x1B 0x001B # <control>
0x1C 0x001C # <control>
0x1D 0x001D # <control>
0x1E 0x001E # <control>
0x1F 0x001F # <control>
0x20 0x0020 # SPACE
0x21 0x0021 # EXCLAMATION MARK
0x22 0x0022 # QUOTATION MARK
0x23 0x0023 # NUMBER SIGN
0x24 0x0024 # DOLLAR SIGN
0x25 0x0025 # PERCENT SIGN
0x26 0x0026 # AMPERSAND
0x27 0x0027 # APOSTROPHE
0x28 0x0028 # LEFT PARENTHESIS
0x29 0x0029 # RIGHT PARENTHESIS
0x2A 0x002A # ASTERISK
0x2B 0x002B # PLUS SIGN
0x2C 0x002C # COMMA
0x2D 0x002D # HYPHEN-MINUS
0x2E 0x002E # FULL STOP
0x2F 0x002F # SOLIDUS
0x30 0x0030 # DIGIT ZERO
0x31 0x0031 # DIGIT ONE
0x32 0x0032 # DIGIT TWO
0x33 0x0033 # DIGIT THREE
0x34 0x0034 # DIGIT FOUR
0x35 0x0035 # DIGIT FIVE
0x36 0x0036 # DIGIT SIX
0x37 0x0037 # DIGIT SEVEN
0x38 0x0038 # DIGIT EIGHT
0x39 0x0039 # DIGIT NINE
0x3A 0x003A # COLON
0x3B 0x003B # SEMICOLON
0x3C 0x003C # LESS-THAN SIGN
0x3D 0x003D # EQUALS SIGN
0x3E 0x003E # GREATER-THAN SIGN
0x3F 0x003F # QUESTION MARK
0x40 0x0040 # COMMERCIAL AT
0x41 0x0041 # LATIN CAPITAL LETTER A
0x42 0x0042 # LATIN CAPITAL LETTER B
0x43 0x0043 # LATIN CAPITAL LETTER C
0x44 0x0044 # LATIN CAPITAL LETTER D
0x45 0x0045 # LATIN CAPITAL LETTER E
0x46 0x0046 # LATIN CAPITAL LETTER F
0x47 0x0047 # LATIN CAPITAL LETTER G
0x48 0x0048 # LATIN CAPITAL LETTER H
0x49 0x0049 # LATIN CAPITAL LETTER I
0x4A 0x004A # LATIN CAPITAL LETTER J
0x4B 0x004B # LATIN CAPITAL LETTER K
0x4C 0x004C # LATIN CAPITAL LETTER L
0x4D 0x004D # LATIN CAPITAL LETTER M
0x4E 0x004E # LATIN CAPITAL LETTER N
0x4F 0x004F # LATIN CAPITAL LETTER O
0x50 0x0050 # LATIN CAPITAL LETTER P
0x51 0x0051 # LATIN CAPITAL LETTER Q
0x52 0x0052 # LATIN CAPITAL LETTER R
0x53 0x0053 # LATIN CAPITAL LETTER S
0x54 0x0054 # LATIN CAPITAL LETTER T
0x55 0x0055 # LATIN CAPITAL LETTER U
0x56 0x0056 # LATIN CAPITAL LETTER V
0x57 0x0057 # LATIN CAPITAL LETTER W
0x58 0x0058 # LATIN CAPITAL LETTER X
0x59 0x0059 # LATIN CAPITAL LETTER Y
0x5A 0x005A # LATIN CAPITAL LETTER Z
0x5B 0x005B # LEFT SQUARE BRACKET
0x5C 0x005C # REVERSE SOLIDUS
0x5D 0x005D # RIGHT SQUARE BRACKET
0x5E 0x005E # CIRCUMFLEX ACCENT
0x5F 0x005F # LOW LINE
0x60 0x0060 # GRAVE ACCENT
0x61 0x0061 # LATIN SMALL LETTER A
0x62 0x0062 # LATIN SMALL LETTER B
0x63 0x0063 # LATIN SMALL LETTER C
0x64 0x0064 # LATIN SMALL LETTER D
0x65 0x0065 # LATIN SMALL LETTER E
0x66 0x0066 # LATIN SMALL LETTER F
0x67 0x0067 # LATIN SMALL LETTER G
0x68 0x0068 # LATIN SMALL LETTER H
0x69 0x0069 # LATIN SMALL LETTER I
0x6A 0x006A # LATIN SMALL LETTER J
0x6B 0x006B # LATIN SMALL LETTER K
0x6C 0x006C # LATIN SMALL LETTER L
0x6D 0x006D # LATIN SMALL LETTER M
0x6E 0x006E # LATIN SMALL LETTER N
0x6F 0x006F # LATIN SMALL LETTER O
0x70 0x0070 # LATIN SMALL LETTER P
0x71 0x0071 # LATIN SMALL LETTER Q
0x72 0x0072 # LATIN SMALL LETTER R
0x73 0x0073 # LATIN SMALL LETTER S
0x74 0x0074 # LATIN SMALL LETTER T
0x75 0x0075 # LATIN SMALL LETTER U
0x76 0x0076 # LATIN SMALL LETTER V
0x77 0x0077 # LATIN SMALL LETTER W
0x78 0x0078 # LATIN SMALL LETTER X
0x79 0x0079 # LATIN SMALL LETTER Y
0x7A 0x007A # LATIN SMALL LETTER Z
0x7B 0x007B # LEFT CURLY BRACKET
0x7C 0x007C # VERTICAL LINE
0x7D 0x007D # RIGHT CURLY BRACKET
0x7E 0x007E # TILDE
0x7F 0x007F # <control>
0x80 0x0080 # <control>
0x81 0x0081 # <control>
0x82 0x0082 # <control>
0x83 0x0083 # <control>
0x84 0x0084 # <control>
0x85 0x0085 # <control>
0x86 0x0086 # <control>
0x87 0x0087 # <control>
0x88 0x0088 # <control>
0x89 0x0089 # <control>
0x8A 0x008A # <control>
0x8B 0x008B # <control>
0x8C 0x008C # <control>
0x8D 0x008D # <control>
0x8E 0x008E # <control>
0x8F 0x008F # <control>
0x90 0x0090 # <control>
0x91 0x0091 # <control>
0x92 0x0092 # <control>
0x93 0x0093 # <control>
0x94 0x0094 # <control>
0x95 0x0095 # <control>
0x96 0x0096 # <control>
0x97 0x0097 # <control>
0x98 0x0098 # <control>
0x99 0x0099 # <control>
0x9A 0x009A # <control>
0x9B 0x009B # <control>
0x9C 0x009C # <control>
0x9D 0x009D # <control>
0x9E 0x009E # <control>
0x9F 0x009F # <control>
0xA0 0x00A0 # NO-BREAK SPACE
0xA1 0x0E81 # LAO LETTER KO
0xA2 0x0E82 # LAO LETTER KHO SUNG
0xA3 0x0E84 # LAO LETTER KHO TAM
0xA4 0x0E87 # LAO LETTER NGO
0xA5 0x0E88 # LAO LETTER CO
0xA6 0x0EAA # LAO LETTER SO SUNG
0xA7 0x0E8A # LAO LETTER SO TAM
0xA8 0x0E8D # LAO LETTER NYO
0xA9 0x0E94 # LAO LETTER DO
0xAA 0x0E95 # LAO LETTER TO
0xAB 0x0E96 # LAO LETTER THO SUNG
0xAC 0x0E97 # LAO LETTER THO TAM
0xAD 0x0E99 # LAO LETTER NO
0xAE 0x0E9A # LAO LETTER BO
0xAF 0x0E9B # LAO LETTER PO
0xB0 0x0E9C # LAO LETTER PHO SUNG
0xB1 0x0E9D # LAO LETTER FO TAM
0xB2 0x0E9E # LAO LETTER PHO TAM
0xB3 0x0E9F # LAO LETTER FO SUNG
0xB4 0x0EA1 # LAO LETTER MO
0xB5 0x0EA2 # LAO LETTER YO
0xB6 0x0EA3 # LAO LETTER LO LING
0xB7 0x0EA5 # LAO LETTER LO LOOT
0xB8 0x0EA7 # LAO LETTER WO
0xB9 0x0EAB # LAO LETTER HO SUNG
0xBA 0x0EAD # LAO LETTER O
0xBB 0x0EAE # LAO LETTER HO TAM
0xBF 0x0EAF # LAO ELLIPSIS
0xC0 0x0EB0 # LAO VOWEL SIGN A
0xC1 0x0EB2 # LAO VOWEL SIGN AA
0xC2 0x0EB3 # LAO VOWEL SIGN AM
0xC3 0x0EB4 # LAO VOWEL SIGN I
0xC4 0x0EB5 # LAO VOWEL SIGN II
0xC5 0x0EB6 # LAO VOWEL SIGN Y
0xC6 0x0EB7 # LAO VOWEL SIGN YY
0xC7 0x0EB8 # LAO VOWEL SIGN U
0xC8 0x0EB9 # LAO VOWEL SIGN UU
0xC9 0x0EBC # LAO SEMIVOWEL SIGN LO
0xCA 0x0EB1 # LAO VOWEL SIGN MAI KAN
0xCB 0x0EBB # LAO VOWEL SIGN MAI KON
0xCC 0x0EBD # LAO SEMIVOWEL SIGN NYO
0xD0 0x0EC0 # LAO VOWEL SIGN E
0xD1 0x0EC1 # LAO VOWEL SIGN EI
0xD2 0x0EC2 # LAO VOWEL SIGN O
0xD3 0x0EC3 # LAO VOWEL SIGN AY
0xD4 0x0EC4 # LAO VOWEL SIGN AI
0xD5 0x0EC8 # LAO TONE MAI EK
0xD6 0x0EC9 # LAO TONE MAI THO
0xD7 0x0ECA # LAO TONE MAI TI
0xD8 0x0ECB # LAO TONE MAI CATAWA
0xD9 0x0ECC # LAO CANCELLATION MARK
0xDA 0x0ECD # LAO NIGGAHITA
0xDB 0x0EC6 # LAO KO LA
0xDD 0x0EDC # LAO HO NO
0xDE 0x0EDD # LAO HO MO
0xDF 0x20AD # KIP SIGN
0xF0 0x0ED0 # LAO DIGIT ZERO
0xF1 0x0ED1 # LAO DIGIT ONE
0xF2 0x0ED2 # LAO DIGIT TWO
0xF3 0x0ED3 # LAO DIGIT THREE
0xF4 0x0ED4 # LAO DIGIT FOUR
0xF5 0x0ED5 # LAO DIGIT FIVE
0xF6 0x0ED6 # LAO DIGIT SIX
0xF7 0x0ED7 # LAO DIGIT SEVEN
0xF8 0x0ED8 # LAO DIGIT EIGHT
0xF9 0x0ED9 # LAO DIGIT NINE
0xFC 0x00A2 # CENT SIGN
0xFD 0x00AC # NOT SIGN
0xFE 0x00A6 # BROKEN BAR
0xFF 0x???? #
@@ -0,0 +1,249 @@
0x00 0x0000
0x01 0x0001
0x02 0x0002
0x03 0x0003
0x04 0x0004
0x05 0x0005
0x06 0x0006
0x07 0x0007
0x08 0x0008
0x09 0x0009
0x0A 0x000A
0x0B 0x000B
0x0C 0x000C
0x0D 0x000D
0x0E 0x000E
0x0F 0x000F
0x10 0x0010
0x11 0x0011
0x12 0x0012
0x13 0x0013
0x14 0x0014
0x15 0x0015
0x16 0x0016
0x17 0x0017
0x18 0x0018
0x19 0x0019
0x1A 0x001A
0x1B 0x001B
0x1C 0x001C
0x1D 0x001D
0x1E 0x001E
0x1F 0x001F
0x20 0x0020
0x21 0x0021
0x22 0x0022
0x23 0x0023
0x24 0x0024
0x25 0x0025
0x26 0x0026
0x27 0x0027
0x28 0x0028
0x29 0x0029
0x2A 0x002A
0x2B 0x002B
0x2C 0x002C
0x2D 0x002D
0x2E 0x002E
0x2F 0x002F
0x30 0x0030
0x31 0x0031
0x32 0x0032
0x33 0x0033
0x34 0x0034
0x35 0x0035
0x36 0x0036
0x37 0x0037
0x38 0x0038
0x39 0x0039
0x3A 0x003A
0x3B 0x003B
0x3C 0x003C
0x3D 0x003D
0x3E 0x003E
0x3F 0x003F
0x40 0x0040
0x41 0x0041
0x42 0x0042
0x43 0x0043
0x44 0x0044
0x45 0x0045
0x46 0x0046
0x47 0x0047
0x48 0x0048
0x49 0x0049
0x4A 0x004A
0x4B 0x004B
0x4C 0x004C
0x4D 0x004D
0x4E 0x004E
0x4F 0x004F
0x50 0x0050
0x51 0x0051
0x52 0x0052
0x53 0x0053
0x54 0x0054
0x55 0x0055
0x56 0x0056
0x57 0x0057
0x58 0x0058
0x59 0x0059
0x5A 0x005A
0x5B 0x005B
0x5C 0x005C
0x5D 0x005D
0x5E 0x005E
0x5F 0x005F
0x60 0x0060
0x61 0x0061
0x62 0x0062
0x63 0x0063
0x64 0x0064
0x65 0x0065
0x66 0x0066
0x67 0x0067
0x68 0x0068
0x69 0x0069
0x6A 0x006A
0x6B 0x006B
0x6C 0x006C
0x6D 0x006D
0x6E 0x006E
0x6F 0x006F
0x70 0x0070
0x71 0x0071
0x72 0x0072
0x73 0x0073
0x74 0x0074
0x75 0x0075
0x76 0x0076
0x77 0x0077
0x78 0x0078
0x79 0x0079
0x7A 0x007A
0x7B 0x007B
0x7C 0x007C
0x7D 0x007D
0x7E 0x007E
0x7F 0x007F
0x80 0x00C7
0x81 0x00FC
0x82 0x00E9
0x83 0x00E2
0x84 0x00E4
0x85 0x00E0
0x86 0x0109
0x87 0x00E7
0x88 0x00EA
0x89 0x00EB
0x8A 0x00E8
0x8B 0x00EF
0x8C 0x00EE
0x8D 0x00EC
0x8E 0x00C4
0x8F 0x0108
0x90 0x00C9
0x91 0x010B
0x92 0x010A
0x93 0x00F4
0x94 0x00F6
0x95 0x00F2
0x96 0x00FB
0x97 0x00F9
0x98 0x0130
0x99 0x00D6
0x9A 0x00DC
0x9B 0x011D
0x9C 0x00A3
0x9D 0x011C
0x9E 0x00D7
0x9F 0x0135
0xA0 0x00E1
0xA1 0x00ED
0xA2 0x00F3
0xA3 0x00FA
0xA4 0x00F1
0xA5 0x00D1
0xA6 0x011E
0xA7 0x011F
0xA8 0x0124
0xA9 0x0125
0xAB 0x00BD
0xAC 0x0134
0xAD 0x015F
0xAE 0x00AB
0xAF 0x00BB
0xB0 0x2591
0xB1 0x2592
0xB2 0x2593
0xB3 0x2502
0xB4 0x2524
0xB5 0x00C1
0xB6 0x00C2
0xB7 0x00C0
0xB8 0x015E
0xB9 0x2563
0xBA 0x2551
0xBB 0x2557
0xBC 0x255D
0xBD 0x017B
0xBE 0x017C
0xBF 0x2510
0xC0 0x2514
0xC1 0x2534
0xC2 0x252C
0xC3 0x251C
0xC4 0x2500
0xC5 0x253C
0xC6 0x015C
0xC7 0x015D
0xC8 0x255A
0xC9 0x2554
0xCA 0x2569
0xCB 0x2566
0xCC 0x2560
0xCD 0x2550
0xCE 0x256C
0xCF 0x00A4
0xD2 0x00CA
0xD3 0x00CB
0xD4 0x00C8
0xD5 0x0131
0xD6 0x00CD
0xD7 0x00CE
0xD8 0x00CF
0xD9 0x2518
0xDA 0x250C
0xDB 0x2588
0xDC 0x2584
0xDE 0x00CC
0xDF 0x2580
0xE0 0x00D3
0xE1 0x00DF
0xE2 0x00D4
0xE3 0x00D2
0xE4 0x0120
0xE5 0x0121
0xE6 0x00B5
0xE7 0x0126
0xE8 0x0127
0xE9 0x00DA
0xEA 0x00DB
0xEB 0x00D9
0xEC 0x016C
0xED 0x016D
0xEF 0x00B4
0xF0 0x00AD
0xF2 0x2113
0xF3 0x0149
0xF4 0x02D8
0xF5 0x00A7
0xF6 0x00F7
0xF7 0x00B8
0xF8 0x00B0
0xF9 0x00A8
0xFA 0x02D9
0xFC 0x00B3
0xFD 0x00B2
0xFE 0x25A0
0xFF 0x00A0
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,328 @@
#
# $Id: IRANSYSTEM.TXT,v 1.3 2000/01/21 17:47:13 mleisher Exp $
#
# Name: IRAN SYSTEM to Unicode
# Unicode version: 3.0
# Table version: 1.0
# Date: 21 January 2000
# Author: Roozbeh Pournader <roozbeh@sina.sharif.ac.ir>
#
# Copyright (c) 1999 Roozbeh Pournader. All Rights reserved.
#
# General notes:
#
# This table contains the data on how IRAN SYSTEM characters
# map into Unicode.
#
# Format: Three tab-separated columns
# Column #1 is the IRAN SYSTEM code (in hex as 0xXX)
# Column #2 is the Unicode (in hex as 0xXXXX),
# plus additional formatting codes
# Column #3 the near-Unicode name
# (follows a comment sign, '#')
#
# The entries are in IRAN SYSTEM order.
#
# Any comments or problems, contact <roozbeh@sina.sharif.ac.ir>.
#
# Changes from previous versions:
# 1.0: Added ASCII characters
# Added No-break space
# Added Box drawing characters
#
# Notes:
#
# 1. Note that IRAN SYSTEM is not a standard, it is a corporate
# character set that found its way through the Iranian user community.
# So, there is no standardization paper to refer to.
#
# 2. The characters in the IRAN SYSTEM standard are saved, and
# transmitted in a visual order. Hence converting Persian/Latin text
# coded in IRAN SYSTEM to Unicode with bidirectional behaviour may be
# hard, and will depend on the application. Because of this, converting
# from any other character set to IRAN SYSTEM is not recommended
# except for display, because of the loss of information.
#
# 3. There are two, three, or four codes per letter in
# most cases: for initial, medial, isolated, and final forms of the
# letters, some of which are unified in most of the cases.
#
# Because of this, two tags, <ZWJ> and <ZWNJ? are added around character
# codes. Their use after the code means that a ZERO WIDTH JOINER (0x200D)
# or a ZERO WIDTH NON JOINER (0x200C) should be added after the character
# if the character is not followed by a right-join causing character, or
# a non-joining character respectively (in the manner of The Unicode
# Standard Version 2.0, pages 6-24 and 6-25). The same can be said when
# the code is preceded by the tag.
#
# In informal words, they should be added if and only if there is a need.
# For example, Persian word "khaane-haa" (houses) that is coded in
# IRAN SYSTEM as:
# 0xA1 0x91 0xF7 0xF9 0xFA 0x91,
# is equal to the Unicode character sequence:
# 0x062E 0x0627 0x0646 0x0647 0x200C 0x0647 0x0627.
#
# 4. The near-Unicode names are only informative. In most of the cases,
# there isn't exactly one Unicode character per IRAN SYSTEM character.
#
# Original data found at: http://www.sharif.ac.ir/~roozbeh/unicode
#
# Replaced the <ZWJ> and <ZWNJ> tags with their equivalent hex codes.
# Mark Leisher <mleisher@crl.nmsu.edu>
# 21 January 2000
#
0x00 0x0000 # <control>
0x01 0x0001 # <control>
0x02 0x0002 # <control>
0x03 0x0003 # <control>
0x04 0x0004 # <control>
0x05 0x0005 # <control>
0x06 0x0006 # <control>
0x07 0x0007 # <control>
0x08 0x0008 # <control>
0x09 0x0009 # <control>
0x0A 0x000A # <control>
0x0B 0x000B # <control>
0x0C 0x000C # <control>
0x0D 0x000D # <control>
0x0E 0x000E # <control>
0x0F 0x000F # <control>
0x10 0x0010 # <control>
0x11 0x0011 # <control>
0x12 0x0012 # <control>
0x13 0x0013 # <control>
0x14 0x0014 # <control>
0x15 0x0015 # <control>
0x16 0x0016 # <control>
0x17 0x0017 # <control>
0x18 0x0018 # <control>
0x19 0x0019 # <control>
0x1A 0x001A # <control>
0x1B 0x001B # <control>
0x1C 0x001C # <control>
0x1D 0x001D # <control>
0x1E 0x001E # <control>
0x1F 0x001F # <control>
0x20 0x0020 # SPACE
0x21 0x0021 # EXCLAMATION MARK
0x22 0x0022 # QUOTATION MARK
0x23 0x0023 # NUMBER SIGN
0x24 0x0024 # DOLLAR SIGN
0x25 0x0025 # PERCENT SIGN
0x26 0x0026 # AMPERSAND
0x27 0x0027 # APOSTROPHE
0x28 0x0028 # LEFT PARENTHESIS
0x29 0x0029 # RIGHT PARENTHESIS
0x2A 0x002A # ASTERISK
0x2B 0x002B # PLUS SIGN
0x2C 0x002C # COMMA
0x2D 0x002D # HYPHEN-MINUS
0x2E 0x002E # FULL STOP
0x2F 0x002F # SOLIDUS
0x30 0x0030 # DIGIT ZERO
0x31 0x0031 # DIGIT ONE
0x32 0x0032 # DIGIT TWO
0x33 0x0033 # DIGIT THREE
0x34 0x0034 # DIGIT FOUR
0x35 0x0035 # DIGIT FIVE
0x36 0x0036 # DIGIT SIX
0x37 0x0037 # DIGIT SEVEN
0x38 0x0038 # DIGIT EIGHT
0x39 0x0039 # DIGIT NINE
0x3A 0x003A # COLON
0x3B 0x003B # SEMICOLON
0x3C 0x003C # LESS-THAN SIGN
0x3D 0x003D # EQUALS SIGN
0x3E 0x003E # GREATER-THAN SIGN
0x3F 0x003F # QUESTION MARK
0x40 0x0040 # COMMERCIAL AT
0x41 0x0041 # LATIN CAPITAL LETTER A
0x42 0x0042 # LATIN CAPITAL LETTER B
0x43 0x0043 # LATIN CAPITAL LETTER C
0x44 0x0044 # LATIN CAPITAL LETTER D
0x45 0x0045 # LATIN CAPITAL LETTER E
0x46 0x0046 # LATIN CAPITAL LETTER F
0x47 0x0047 # LATIN CAPITAL LETTER G
0x48 0x0048 # LATIN CAPITAL LETTER H
0x49 0x0049 # LATIN CAPITAL LETTER I
0x4A 0x004A # LATIN CAPITAL LETTER J
0x4B 0x004B # LATIN CAPITAL LETTER K
0x4C 0x004C # LATIN CAPITAL LETTER L
0x4D 0x004D # LATIN CAPITAL LETTER M
0x4E 0x004E # LATIN CAPITAL LETTER N
0x4F 0x004F # LATIN CAPITAL LETTER O
0x50 0x0050 # LATIN CAPITAL LETTER P
0x51 0x0051 # LATIN CAPITAL LETTER Q
0x52 0x0052 # LATIN CAPITAL LETTER R
0x53 0x0053 # LATIN CAPITAL LETTER S
0x54 0x0054 # LATIN CAPITAL LETTER T
0x55 0x0055 # LATIN CAPITAL LETTER U
0x56 0x0056 # LATIN CAPITAL LETTER V
0x57 0x0057 # LATIN CAPITAL LETTER W
0x58 0x0058 # LATIN CAPITAL LETTER X
0x59 0x0059 # LATIN CAPITAL LETTER Y
0x5A 0x005A # LATIN CAPITAL LETTER Z
0x5B 0x005B # LEFT SQUARE BRACKET
0x5C 0x005C # REVERSE SOLIDUS
0x5D 0x005D # RIGHT SQUARE BRACKET
0x5E 0x005E # CIRCUMFLEX ACCENT
0x5F 0x005F # LOW LINE
0x60 0x0060 # GRAVE ACCENT
0x61 0x0061 # LATIN SMALL LETTER A
0x62 0x0062 # LATIN SMALL LETTER B
0x63 0x0063 # LATIN SMALL LETTER C
0x64 0x0064 # LATIN SMALL LETTER D
0x65 0x0065 # LATIN SMALL LETTER E
0x66 0x0066 # LATIN SMALL LETTER F
0x67 0x0067 # LATIN SMALL LETTER G
0x68 0x0068 # LATIN SMALL LETTER H
0x69 0x0069 # LATIN SMALL LETTER I
0x6A 0x006A # LATIN SMALL LETTER J
0x6B 0x006B # LATIN SMALL LETTER K
0x6C 0x006C # LATIN SMALL LETTER L
0x6D 0x006D # LATIN SMALL LETTER M
0x6E 0x006E # LATIN SMALL LETTER N
0x6F 0x006F # LATIN SMALL LETTER O
0x70 0x0070 # LATIN SMALL LETTER P
0x71 0x0071 # LATIN SMALL LETTER Q
0x72 0x0072 # LATIN SMALL LETTER R
0x73 0x0073 # LATIN SMALL LETTER S
0x74 0x0074 # LATIN SMALL LETTER T
0x75 0x0075 # LATIN SMALL LETTER U
0x76 0x0076 # LATIN SMALL LETTER V
0x77 0x0077 # LATIN SMALL LETTER W
0x78 0x0078 # LATIN SMALL LETTER X
0x79 0x0079 # LATIN SMALL LETTER Y
0x7A 0x007A # LATIN SMALL LETTER Z
0x7B 0x007B # LEFT CURLY BRACKET
0x7C 0x007C # VERTICAL LINE
0x7D 0x007D # RIGHT CURLY BRACKET
0x7E 0x007E # TILDE
0x80 0x06F0 # EXTENDED ARABIC-INDIC DIGIT ZERO
0x81 0x06F1 # EXTENDED ARABIC-INDIC DIGIT ONE
0x82 0x06F2 # EXTENDED ARABIC-INDIC DIGIT TWO
0x83 0x06F3 # EXTENDED ARABIC-INDIC DIGIT THREE
0x84 0x06F4 # EXTENDED ARABIC-INDIC DIGIT FOUR
0x85 0x06F5 # EXTENDED ARABIC-INDIC DIGIT FIVE
0x86 0x06F6 # EXTENDED ARABIC-INDIC DIGIT SIX
0x87 0x06F7 # EXTENDED ARABIC-INDIC DIGIT SEVEN
0x88 0x06F8 # EXTENDED ARABIC-INDIC DIGIT EIGHT
0x89 0x06F9 # EXTENDED ARABIC-INDIC DIGIT NINE
0x8A 0x060C # ARABIC COMMA
0x8B 0x0640 # ARABIC TATWEEL
0x8C 0x061F # ARABIC QUESTION MARK
0x8D 0x200C 0x0622 # ARABIC LETTER ALEF WITH MADDA ABOVE, isolated form
0x8E 0x0626 0x200D # ARABIC LETTER YEH WITH HAMZA ABOVE, initial-medial form
0x8F 0x0621 # ARABIC LETTER HAMZA
0x90 0x200C 0x0627 # ARABIC LETTER ALEF, isolated form
0x91 0x200D 0x0627 # ARABIC LETTER ALEF, final form
0x92 0x0628 0x200C # ARABIC LETTER BEH, final-isolated form
0x93 0x0628 0x200D # ARABIC LETTER BEH, initial-medial form
0x94 0x067E 0x200C # ARABIC LETTER PEH, final-isolated form
0x95 0x067E 0x200D # ARABIC LETTER PEH, initial-medial form
0x96 0x062A 0x200C # ARABIC LETTER TEH, final-isolated form
0x97 0x062A 0x200D # ARABIC LETTER TEH, initial-medial form
0x98 0x062B 0x200C # ARABIC LETTER THEH, final-isolated form
0x99 0x062B 0x200D # ARABIC LETTER THEH, initial-medial form
0x9A 0x062C 0x200C # ARABIC LETTER JEEM, final-isolated form
0x9B 0x062C 0x200D # ARABIC LETTER JEEM, initial-medial form
0x9C 0x0686 0x200C # ARABIC LETTER TCHEH, final-isolated form
0x9D 0x0686 0x200D # ARABIC LETTER TCHEH, initial-medial form
0x9E 0x062D 0x200C # ARABIC LETTER HAH, final-isolated form
0x9F 0x062D 0x200D # ARABIC LETTER HAH, initial-medial form
0xA0 0x062E 0x200C # ARABIC LETTER KHAH, final-isolated form
0xA1 0x062E 0x200D # ARABIC LETTER KHAH, initial-medial form
0xA2 0x062F # ARABIC LETTER DAL
0xA3 0x0630 # ARABIC LETTER THAL
0xA4 0x0631 # ARABIC LETTER REH
0xA5 0x0632 # ARABIC LETTER ZAIN
0xA6 0x0698 # ARABIC LETTER JEH
0xA7 0x0633 0x200C # ARABIC LETTER SEEN, final-isolated form
0xA8 0x0633 0x200D # ARABIC LETTER SEEN, initial-medial form
0xA9 0x0634 0x200C # ARABIC LETTER SHEEN, final-isolated form
0xAA 0x0634 0x200D # ARABIC LETTER SHEEN, initial-medial form
0xAB 0x0635 0x200C # ARABIC LETTER SAD, final-isolated form
0xAC 0x0635 0x200D # ARABIC LETTER SAD, initial-medial form
0xAD 0x0636 0x200C # ARABIC LETTER DAD, final-isolated form
0xAE 0x0636 0x200D # ARABIC LETTER DAD, initial-medial form
0xAF 0x0637 # ARABIC LETTER TAH
0xB0 0x2591 # LIGHT SHADE
0xB1 0x2592 # MEDIUM SHADE
0xB2 0x2593 # DARK SHADE
0xB3 0x2502 # BOX DRAWINGS LIGHT VERTICAL
0xB4 0x2524 # BOX DRAWINGS LIGHT VERTICAL AND LEFT
0xB5 0x2561 # BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
0xB6 0x2562 # BOX DRAWINGS VERTICAL DOUBLE AND LEFT SINGLE
0xB7 0x2556 # BOX DRAWINGS DOWN DOUBLE AND LEFT SINGLE
0xB8 0x2555 # BOX DRAWINGS DOWN SINGLE AND LEFT DOUBLE
0xB9 0x2563 # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
0xBA 0x2551 # BOX DRAWINGS DOUBLE VERTICAL
0xBB 0x2557 # BOX DRAWINGS DOUBLE DOWN AND LEFT
0xBC 0x255D # BOX DRAWINGS DOUBLE UP AND LEFT
0xBD 0x255C # BOX DRAWINGS UP DOUBLE AND LEFT SINGLE
0xBE 0x255B # BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
0xBF 0x2510 # BOX DRAWINGS LIGHT DOWN AND LEFT
0xC0 0x2514 # BOX DRAWINGS LIGHT UP AND RIGHT
0xC1 0x2534 # BOX DRAWINGS LIGHT UP AND HORIZONTAL
0xC2 0x252C # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
0xC3 0x251C # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
0xC4 0x2500 # BOX DRAWINGS LIGHT HORIZONTAL
0xC5 0x253C # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
0xC6 0x255E # BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
0xC7 0x255F # BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
0xC8 0x255A # BOX DRAWINGS DOUBLE UP AND RIGHT
0xC9 0x2554 # BOX DRAWINGS DOUBLE DOWN AND RIGHT
0xCA 0x2569 # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
0xCB 0x2566 # BOX DRAWINGS DOUBLE DOWN AND HORIZONTAL
0xCC 0x2560 # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
0xCD 0x2550 # BOX DRAWINGS DOUBLE HORIZONTAL
0xCE 0x256C # BOX DRAWINGS DOUBLE VERTICAL AND HORIZONTAL
0xCF 0x2567 # BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
0xD0 0x2568 # BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
0xD1 0x2564 # BOX DRAWINGS DOWN SINGLE AND HORIZONTAL DOUBLE
0xD2 0x2565 # BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
0xD3 0x2559 # BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
0xD4 0x2558 # BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
0xD5 0x2552 # BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
0xD6 0x2553 # BOX DRAWINGS DOWN DOUBLE AND RIGHT SINGLE
0xD7 0x256B # BOX DRAWINGS VERTICAL DOUBLE AND HORIZONTAL SINGLE
0xD8 0x256A # BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
0xD9 0x2518 # BOX DRAWINGS LIGHT UP AND LEFT
0xDA 0x250C # BOX DRAWINGS LIGHT DOWN AND RIGHT
0xDB 0x2588 # FULL BLOCK
0xDC 0x2584 # LOWER HALF BLOCK
0xDD 0x258C # LEFT HALF BLOCK
0xDE 0x2590 # RIGHT HALF BLOCK
0xDF 0x2580 # UPPER HALF BLOCK
0xE0 0x0638 # ARABIC LETTER ZAH
0xE1 0x200C 0x0639 0x200C # ARABIC LETTER AIN, isolated form
0xE2 0x200D 0x0639 0x200C # ARABIC LETTER AIN, final form
0xE3 0x200D 0x0639 0x200D # ARABIC LETTER AIN, medial form
0xE4 0x200C 0x0639 0x200D # ARABIC LETTER AIN, initial form
0xE5 0x200C 0x063A 0x200C # ARABIC LETTER GHAIN, isolated form
0xE6 0x200D 0x063A 0x200C # ARABIC LETTER GHAIN, final form
0xE7 0x200D 0x063A 0x200D # ARABIC LETTER GHAIN, medial form
0xE8 0x200C 0x063A 0x200D # ARABIC LETTER GHAIN, initial form
0xE9 0x0641 0x200C # ARABIC LETTER FEH, final-isolated form
0xEA 0x0641 0x200D # ARABIC LETTER FEH, initial-medial form
0xEB 0x0642 0x200C # ARABIC LETTER QAF, final-isolated form
0xEC 0x0642 0x200D # ARABIC LETTER QAF, initial-medial form
0xED 0x06A9 0x200C # ARABIC LETTER KEHEH, final-isolated form
0xEE 0x06A9 0x200D # ARABIC LETTER KEHEH, initial-medial form
0xEF 0x06AF 0x200C # ARABIC LETTER GAF, final-isolated form
0xF0 0x06AF 0x200D # ARABIC LETTER GAF, initial-medial form
0xF1 0x0644 0x200C # ARABIC LETTER LAM, final-isolated form
0xF2 0x0644 0x0627 # ARABIC LIGATURE LAM WITH ALEF
0xF3 0x0644 0x200D # ARABIC LETTER LAM, initial-medial form
0xF4 0x0645 0x200C # ARABIC LETTER MEEM, final-isolated form
0xF5 0x0645 0x200D # ARABIC LETTER MEEM, initial-medial form
0xF6 0x0646 0x200C # ARABIC LETTER NOON, final-isolated form
0xF7 0x0646 0x200D # ARABIC LETTER NOON, initial-medial form
0xF8 0x0648 # ARABIC LETTER WAW
0xF9 0x0647 0x200C # ARABIC LETTER HEH, final-isolated form
0xFA 0x200D 0x0647 0x200D # ARABIC LETTER HEH, medial form
0xFB 0x200C 0x0647 0x200D # ARABIC LETTER HEH, initial form
0xFC 0x200D 0x06CC 0x200C # ARABIC LETTER FARSI YEH, final form
0xFD 0x200C 0x06CC 0x200C # ARABIC LETTER FARSI YEH, isolated form
0xFE 0x06CC 0x200D # ARABIC LETTER FARSI YEH, initial-medial form
0xFF 0x00A0 # NO-BREAK SPACE
@@ -0,0 +1,309 @@
#
# $Id: ISIRI3342.TXT,v 1.2 2000/01/21 17:47:13 mleisher Exp $
#
# Name: ISIRI 3342 (1993) to Unicode
# Unicode version: 2.1
# Table version: 0.0
# Date: 10 December 1999
# Author: Roozbeh Pournader <roozbeh@sina.sharif.ac.ir>
#
# Copyright (c) 1999 Roozbeh Pournader. All Rights reserved.
#
# General notes:
#
# This table contains the data on how ISIRI 3342 (1993) characters
# map into Unicode.
#
# Format: Three tab-separated columns
# Column #1 is the ISIRI 3342 code (in hex as 0xXX)
# Column #2 is the Unicode (in hex as 0xXXXX)
# Column #3 the Unicode name (follows a comment sign, '#')
#
# The entries are in ISIRI 3342 order
#
# Any comments or problems, contact <roozbeh@sina.sharif.ac.ir>
#
# Note:
#
# Please note that the bidi property is different from the Unicode
# equivalents. The bidi property is not mentioned explicitly in the
# standard, only a short reference saying that the writing direction
# of Persian script is of course right-to-left; the direction problem
# can not be addressed in a short sentence, the standard committee
# is discussing this, and will publish the results as an annex, which
# in my knowledge never appeared.
#
# One important thing about the codeset is that there are two spaces,
# one inherited from ASCII (0x20) and one on the ISIRI 3342 table (0xA0).
# The latter should be considered a Right-to-Left character obviously,
# but it seems that the former should be considered a Left-to-Right one,
# and not a Neutral Whitespace. This has been the theory of duplicating
# them, simplifying the bidi algorithm as much as possible.
#
# Few things can be understood about the digits or punctuations:
# e.g. it is not known if the digits fall in the AN or EN category,
# or it can't be understood if FULL STOP (0xA6) should be considered
# R, ES, or something else not in the character types.
#
# Original data found at: http://www.sharif.ac.ir/~roozbeh/unicode
#
# Some minor additions to round out the mapping.
# Mark Leisher <mleisher@crl.nmsu.edu>
# 10 December 1999
#
0x00 0x0000 # <control>
0x01 0x0001 # <control>
0x02 0x0002 # <control>
0x03 0x0003 # <control>
0x04 0x0004 # <control>
0x05 0x0005 # <control>
0x06 0x0006 # <control>
0x07 0x0007 # <control>
0x08 0x0008 # <control>
0x09 0x0009 # <control>
0x0A 0x000A # <control>
0x0B 0x000B # <control>
0x0C 0x000C # <control>
0x0D 0x000D # <control>
0x0E 0x000E # <control>
0x0F 0x000F # <control>
0x10 0x0010 # <control>
0x11 0x0011 # <control>
0x12 0x0012 # <control>
0x13 0x0013 # <control>
0x14 0x0014 # <control>
0x15 0x0015 # <control>
0x16 0x0016 # <control>
0x17 0x0017 # <control>
0x18 0x0018 # <control>
0x19 0x0019 # <control>
0x1A 0x001A # <control>
0x1B 0x001B # <control>
0x1C 0x001C # <control>
0x1D 0x001D # <control>
0x1E 0x001E # <control>
0x1F 0x001F # <control>
0x20 0x0020 # SPACE
0x21 0x0021 # EXCLAMATION MARK
0x22 0x0022 # QUOTATION MARK
0x23 0x0023 # NUMBER SIGN
0x24 0x0024 # DOLLAR SIGN
0x25 0x0025 # PERCENT SIGN
0x26 0x0026 # AMPERSAND
0x27 0x0027 # APOSTROPHE
0x28 0x0028 # LEFT PARENTHESIS
0x29 0x0029 # RIGHT PARENTHESIS
0x2A 0x002A # ASTERISK
0x2B 0x002B # PLUS SIGN
0x2C 0x002C # COMMA
0x2D 0x002D # HYPHEN-MINUS
0x2E 0x002E # FULL STOP
0x2F 0x002F # SOLIDUS
0x30 0x0030 # DIGIT ZERO
0x31 0x0031 # DIGIT ONE
0x32 0x0032 # DIGIT TWO
0x33 0x0033 # DIGIT THREE
0x34 0x0034 # DIGIT FOUR
0x35 0x0035 # DIGIT FIVE
0x36 0x0036 # DIGIT SIX
0x37 0x0037 # DIGIT SEVEN
0x38 0x0038 # DIGIT EIGHT
0x39 0x0039 # DIGIT NINE
0x3A 0x003A # COLON
0x3B 0x003B # SEMICOLON
0x3C 0x003C # LESS-THAN SIGN
0x3D 0x003D # EQUALS SIGN
0x3E 0x003E # GREATER-THAN SIGN
0x3F 0x003F # QUESTION MARK
0x40 0x0040 # COMMERCIAL AT
0x41 0x0041 # LATIN CAPITAL LETTER A
0x42 0x0042 # LATIN CAPITAL LETTER B
0x43 0x0043 # LATIN CAPITAL LETTER C
0x44 0x0044 # LATIN CAPITAL LETTER D
0x45 0x0045 # LATIN CAPITAL LETTER E
0x46 0x0046 # LATIN CAPITAL LETTER F
0x47 0x0047 # LATIN CAPITAL LETTER G
0x48 0x0048 # LATIN CAPITAL LETTER H
0x49 0x0049 # LATIN CAPITAL LETTER I
0x4A 0x004A # LATIN CAPITAL LETTER J
0x4B 0x004B # LATIN CAPITAL LETTER K
0x4C 0x004C # LATIN CAPITAL LETTER L
0x4D 0x004D # LATIN CAPITAL LETTER M
0x4E 0x004E # LATIN CAPITAL LETTER N
0x4F 0x004F # LATIN CAPITAL LETTER O
0x50 0x0050 # LATIN CAPITAL LETTER P
0x51 0x0051 # LATIN CAPITAL LETTER Q
0x52 0x0052 # LATIN CAPITAL LETTER R
0x53 0x0053 # LATIN CAPITAL LETTER S
0x54 0x0054 # LATIN CAPITAL LETTER T
0x55 0x0055 # LATIN CAPITAL LETTER U
0x56 0x0056 # LATIN CAPITAL LETTER V
0x57 0x0057 # LATIN CAPITAL LETTER W
0x58 0x0058 # LATIN CAPITAL LETTER X
0x59 0x0059 # LATIN CAPITAL LETTER Y
0x5A 0x005A # LATIN CAPITAL LETTER Z
0x5B 0x005B # LEFT SQUARE BRACKET
0x5C 0x005C # REVERSE SOLIDUS
0x5D 0x005D # RIGHT SQUARE BRACKET
0x5E 0x005E # CIRCUMFLEX ACCENT
0x5F 0x005F # LOW LINE
0x60 0x0060 # GRAVE ACCENT
0x61 0x0061 # LATIN SMALL LETTER A
0x62 0x0062 # LATIN SMALL LETTER B
0x63 0x0063 # LATIN SMALL LETTER C
0x64 0x0064 # LATIN SMALL LETTER D
0x65 0x0065 # LATIN SMALL LETTER E
0x66 0x0066 # LATIN SMALL LETTER F
0x67 0x0067 # LATIN SMALL LETTER G
0x68 0x0068 # LATIN SMALL LETTER H
0x69 0x0069 # LATIN SMALL LETTER I
0x6A 0x006A # LATIN SMALL LETTER J
0x6B 0x006B # LATIN SMALL LETTER K
0x6C 0x006C # LATIN SMALL LETTER L
0x6D 0x006D # LATIN SMALL LETTER M
0x6E 0x006E # LATIN SMALL LETTER N
0x6F 0x006F # LATIN SMALL LETTER O
0x70 0x0070 # LATIN SMALL LETTER P
0x71 0x0071 # LATIN SMALL LETTER Q
0x72 0x0072 # LATIN SMALL LETTER R
0x73 0x0073 # LATIN SMALL LETTER S
0x74 0x0074 # LATIN SMALL LETTER T
0x75 0x0075 # LATIN SMALL LETTER U
0x76 0x0076 # LATIN SMALL LETTER V
0x77 0x0077 # LATIN SMALL LETTER W
0x78 0x0078 # LATIN SMALL LETTER X
0x79 0x0079 # LATIN SMALL LETTER Y
0x7A 0x007A # LATIN SMALL LETTER Z
0x7B 0x007B # LEFT CURLY BRACKET
0x7C 0x007C # VERTICAL LINE
0x7D 0x007D # RIGHT CURLY BRACKET
0x7E 0x007E # TILDE
0x7F 0x007F # <control>
0x80 0x0080 # <control>
0x81 0x0081 # <control>
0x82 0x0082 # <control>
0x83 0x0083 # <control>
0x84 0x0084 # <control>
0x85 0x0085 # <control>
0x86 0x0086 # <control>
0x87 0x0087 # <control>
0x88 0x0088 # <control>
0x89 0x0089 # <control>
0x8A 0x008A # <control>
0x8B 0x008B # <control>
0x8C 0x008C # <control>
0x8D 0x008D # <control>
0x8E 0x008E # <control>
0x8F 0x008F # <control>
0x90 0x0090 # <control>
0x91 0x0091 # <control>
0x92 0x0092 # <control>
0x93 0x0093 # <control>
0x94 0x0094 # <control>
0x95 0x0095 # <control>
0x96 0x0096 # <control>
0x97 0x0097 # <control>
0x98 0x0098 # <control>
0x99 0x0099 # <control>
0x9A 0x009A # <control>
0x9B 0x009B # <control>
0x9C 0x009C # <control>
0x9D 0x009D # <control>
0x9E 0x009E # <control>
0x9F 0x009F # <control>
0xA0 0x0020 # SPACE
0xA1 0x200C # ZERO WIDTH NON-JOINER
0xA2 0x200D # ZERO WIDTH JOINER
0xA3 0x0021 # EXCLAMATION MARK
0xA4 0x00A4 # CURRENCY SIGN
0xA5 0x066A # ARABIC PERCENT SIGN
0xA6 0x002E # FULL STOP
0xA7 0x066C # ARABIC THOUSANDS SEPARATOR
0xA8 0x0029 # RIGHT PARENTHESIS
0xA9 0x0028 # LEFT PARENTHESIS
0xAA 0x00D7 # MULTIPLICATION SIGN
0xAB 0x002B # PLUS SIGN
0xAC 0x060C # ARABIC COMMA
0xAD 0x002D # HYPHEN-MINUS
0xAE 0x066B # ARABIC DECIMAL SEPARATOR
0xAF 0x002F # SOLIDUS
0xB0 0x06F0 # EXTENDED ARABIC-INDIC DIGIT ZERO
0xB1 0x06F1 # EXTENDED ARABIC-INDIC DIGIT ONE
0xB2 0x06F2 # EXTENDED ARABIC-INDIC DIGIT TWO
0xB3 0x06F3 # EXTENDED ARABIC-INDIC DIGIT THREE
0xB4 0x06F4 # EXTENDED ARABIC-INDIC DIGIT FOUR
0xB5 0x06F5 # EXTENDED ARABIC-INDIC DIGIT FIVE
0xB6 0x06F6 # EXTENDED ARABIC-INDIC DIGIT SIX
0xB7 0x06F7 # EXTENDED ARABIC-INDIC DIGIT SEVEN
0xB8 0x06F8 # EXTENDED ARABIC-INDIC DIGIT EIGHT
0xB9 0x06F9 # EXTENDED ARABIC-INDIC DIGIT NINE
0xBA 0x003A # COLON
0xBB 0x061B # ARABIC SEMICOLON
0xBC 0x003C # LESS-THAN SIGN
0xBD 0x003D # EQUALS SIGN
0xBE 0x003E # GREATER-THAN SIGN
0xBF 0x061F # ARABIC QUESTION MARK
0xC0 0x0622 # ARABIC LETTER ALEF WITH MADDA ABOVE
0xC1 0x0627 # ARABIC LETTER ALEF
0xC2 0x0621 # ARABIC LETTER HAMZA
0xC3 0x0628 # ARABIC LETTER BEH
0xC4 0x067E # ARABIC LETTER PEH
0xC5 0x062A # ARABIC LETTER TEH
0xC6 0x062B # ARABIC LETTER THEH
0xC7 0x062C # ARABIC LETTER JEEM
0xC8 0x0686 # ARABIC LETTER TCHEH
0xC9 0x062D # ARABIC LETTER HAH
0xCA 0x062E # ARABIC LETTER KHAH
0xCB 0x062F # ARABIC LETTER DAL
0xCC 0x0630 # ARABIC LETTER THAL
0xCD 0x0631 # ARABIC LETTER REH
0xCE 0x0632 # ARABIC LETTER ZAIN
0xCF 0x0698 # ARABIC LETTER JEH
0xD0 0x0633 # ARABIC LETTER SEEN
0xD1 0x0634 # ARABIC LETTER SHEEN
0xD2 0x0635 # ARABIC LETTER SAD
0xD3 0x0636 # ARABIC LETTER DAD
0xD4 0x0637 # ARABIC LETTER TAH
0xD5 0x0638 # ARABIC LETTER ZAH
0xD6 0x0639 # ARABIC LETTER AIN
0xD7 0x063A # ARABIC LETTER GHAIN
0xD8 0x0641 # ARABIC LETTER FEH
0xD9 0x0642 # ARABIC LETTER QAF
0xDA 0x06A9 # ARABIC LETTER KEHEH
0xDB 0x06AF # ARABIC LETTER GAF
0xDC 0x0644 # ARABIC LETTER LAM
0xDD 0x0645 # ARABIC LETTER MEEM
0xDE 0x0646 # ARABIC LETTER NOON
0xDF 0x0648 # ARABIC LETTER WAW
0xE0 0x0647 # ARABIC LETTER HEH
0xE1 0x06CC # ARABIC LETTER FARSI YEH
0xE2 0x005D # RIGHT SQUARE BRACKET
0xE3 0x005B # LEFT SQUARE BRACKET
0xE4 0x007D # RIGHT CURLY BRACKET
0xE5 0x007B # LEFT CURLY BRACKET
0xE6 0x00AB # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
0xE7 0x00BB # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
0xE8 0x002A # ASTERISK
0xE9 0x0640 # ARABIC TATWEEL
0xEA 0x007C # VERTICAL LINE
0xEB 0x005C # REVERSE SOLIDUS
0xEC 0xFFFD # REPLACEMENT CHARACTER
0xED 0xFFFD # REPLACEMENT CHARACTER
0xEE 0xFFFD # REPLACEMENT CHARACTER
0xEF 0xFFFD # REPLACEMENT CHARACTER
0xF0 0x064E # ARABIC FATHA
0xF1 0x0650 # ARABIC KASRA
0xF2 0x064F # ARABIC DAMMA
0xF3 0x064B # ARABIC FATHATAN
0xF4 0x064D # ARABIC KASRATAN
0xF5 0x064C # ARABIC DAMMATAN
0xF6 0x0651 # ARABIC SHADDA
0xF7 0x0652 # ARABIC SUKUN
0xF8 0x0623 # ARABIC LETTER ALEF WITH HAMZA ABOVE
0xF9 0x0624 # ARABIC LETTER WAW WITH HAMZA ABOVE
0xFA 0x0625 # ARABIC LETTER ALEF WITH HAMZA BELOW
0xFB 0x0626 # ARABIC LETTER YEH WITH HAMZA ABOVE
0xFC 0x0629 # ARABIC LETTER TEH MARBUTA
0xFD 0x0643 # ARABIC LETTER KAF
0xFE 0x064A # ARABIC LETTER YEH
0xFF 0xFFFD # REPLACEMENT CHARACTER
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,285 @@
#
# Name: ISO-IR-68 to Unicode
# Unicode version: 4.0
# Table version: 1.0.1
# Table format: Format A
# Date: 2004 June 29
# Authors: John Cowan <cowan@ccil.org>
#
# Copyright (c) 1991-2004 Unicode, Inc. All Rights reserved.
#
# This file is provided as-is by Unicode, Inc. (The Unicode Consortium).
# No claims are made as to fitness for any particular purpose. No
# warranties of any kind are expressed or implied. The recipient
# agrees to determine applicability of information provided. If this
# file has been provided on optical media by Unicode, Inc., the sole
# remedy for any claim will be exchange of defective media within 90
# days of receipt.
#
# Unicode, Inc. hereby grants the right to freely use the information
# supplied in this file in the creation of products supporting the
# Unicode Standard, and to make copies of this file in any form for
# internal or external distribution as long as this notice remains
# attached.
#
# General notes:
#
# This table contains the data the Unicode Consortium has on how
# ISO-IR-68 (Reference graphic character set for APL workspace
# interchange) characters map into Unicode.
#
# Format: Three tab-separated columns
# Column #1 is the ISO-IR-68 code (in hex as XX), or
# sequence of three codes (in hex as XXYYZZ).
# In all cases, YY = 08, or backspace.
# Column #2 is the Unicode (in hex as 0xXXXX)
# Column #3 the Unicode name (follows a comment sign, '#')
#
# The entries are in ISO-IR-68 order.
#
# Version history
# None.
#
# Updated versions of this file may be found in:
# <ftp://ftp.unicode.org/Public/MAPPINGS/>
#
# For any comments or problems, please use the Unicode
# web contact form at:
# http://www.unicode.org/unicode/reporting.html
#
0x20 0x0020 # SPACE
0x21 0x00A8 # DIAERESIS
0x210826 0x2369 # APL FUNCTIONAL SYMBOL GREATER-THAN DIAERESIS
0x21082E 0x2235 # BECAUSE
0x210847 0x2362 # APL FUNCTIONAL SYMBOL DEL DIAERESIS
0x21084A 0x2364 # APL FUNCTIONAL SYMBOL JOT DIAERESIS
0x21084E 0x2361 # APL FUNCTIONAL SYMBOL UP TACK DIAERESIS
0x21084F 0x2365 # APL FUNCTIONAL SYMBOL CIRCLE DIAERESIS
0x210850 0x2363 # APL FUNCTIONAL SYMBOL STAR DIAERESIS
0x210854 0x2368 # APL FUNCTIONAL SYMBOL TILDE DIAERESIS
0x22 0x0029 # RIGHT PARENTHESIS
0x23 0x003C # LESS-THAN SIGN
0x23084C 0x2343 # APL FUNCTIONAL SYMBOL QUAD LESS-THAN
0x24 0x2264 # LESS-THAN OR EQUAL TO
0x25 0x003D # EQUALS SIGN
0x26 0x003E # GREATER-THAN SIGN
0x260821 0x2369 # APL FUNCTIONAL SYMBOL GREATER-THAN DIAERESIS
0x26084C 0x2344 # APL FUNCTIONAL SYMBOL QUAD GREATER-THAN
0x27 0x005D # RIGHT SQUARE BRACKET
0x27083B 0x2337 # APL FUNCTIONAL SYMBOL SQUISH QUAD
0x28 0x2227 # LOGICAL AND
0x28084C 0x234C # APL FUNCTIONAL SYMBOL QUAD DOWN CARET
0x280854 0x2371 # APL FUNCTIONAL SYMBOL DOWN CARET TILDE
0x29 0x2228 # LOGICAL OR
0x29084C 0x2353 # APL FUNCTIONAL SYMBOL QUAD UP CARET
0x290854 0x2372 # APL FUNCTIONAL SYMBOL UP CARET TILDE
0x2A 0x2260 # NOT EQUAL TO
0x2A084C 0x2338 # APL FUNCTIONAL SYMBOL QUAD EQUAL
0x2A084C 0x236F # APL FUNCTIONAL SYMBOL QUAD NOT EQUAL
0x2B 0x00F7 # DIVISION SIGN
0x2B084C 0x2339 # APL FUNCTIONAL SYMBOL QUAD DIVIDE
0x2C 0x002C # COMMA
0x2C085F 0x236A # APL FUNCTIONAL SYMBOL COMMA BAR
0x2D 0x002B # PLUS SIGN
0x2E 0x002E # FULL STOP
0x2E0821 0x2235 # BECAUSE
0x2E084B 0x0021 # EXCLAMATION MARK
0x2F 0x002F # SOLIDUS
0x2F084C 0x2341 # APL FUNCTIONAL SYMBOL QUAD SLASH
0x2F084F 0x2205 # EMPTY SET
0x2F085F 0x233F # APL FUNCTIONAL SYMBOL SLASH BAR
0x30 0x0030 # DIGIT ZERO
0x300854 0x236C # APL FUNCTIONAL SYMBOL ZILDE
0x31 0x0031 # DIGIT ONE
0x32 0x0032 # DIGIT TWO
0x33 0x0033 # DIGIT THREE
0x34 0x0034 # DIGIT FOUR
0x35 0x0035 # DIGIT FIVE
0x36 0x0036 # DIGIT SIX
0x37 0x0037 # DIGIT SEVEN
0x38 0x0038 # DIGIT EIGHT
0x39 0x0039 # DIGIT NINE
0x3A 0x0028 # LEFT PARENTHESIS
0x3B 0x005B # LEFT SQUARE BRACKET
0x3B0827 0x2337 # APL FUNCTIONAL SYMBOL SQUISH QUAD
0x3C 0x003B # SEMICOLON
0x3C0846 0x236E # APL FUNCTIONAL SYMBOL SEMICOLON UNDERBAR
0x3D 0x00D7 # MULTIPLICATION SIGN
0x3E 0x003A # COLON
0x3E084C 0x2360 # APL FUNCTIONAL SYMBOL QUAD COLON
0x3F 0x005C # REVERSE SOLIDUS
0x3F084C 0x2342 # APL FUNCTIONAL SYMBOL QUAD BACKSLASH
0x3F084F 0x2349 # APL FUNCTIONAL SYMBOL CIRCLE BACKSLASH
0x3F085F 0x2340 # APL FUNCTIONAL SYMBOL BACKSLASH BAR
0x40 0x00AF # MACRON
0x40084E 0x2351 # APL FUNCTIONAL SYMBOL UP TACK OVERBAR
0x41 0x237A # APL FUNCTIONAL SYMBOL ALPHA
0x410846 0x2376 # APL FUNCTIONAL SYMBOL ALPHA UNDERBAR
0x42 0x22A5 # UP TACK
0x420846 0x234A # APL FUNCTIONAL SYMBOL DOWN TACK UNDERBAR
0x42084A 0x234E # APL FUNCTIONAL SYMBOL DOWN TACK JOT
0x42084E 0x2336 # APL FUNCTIONAL SYMBOL I-BEAM
0x43 0x2229 # INTERSECTION
0x43084A 0x235D # APL FUNCTIONAL SYMBOL UP SHOE JOT
0x44 0x230A # LEFT FLOOR
0x45 0x220A # SMALL ELEMENT OF
0x450846 0x2377 # APL FUNCTIONAL SYMBOL EPSILON UNDERBAR
0x46 0x005F # LOW LINE
0x46083C 0x236E # APL FUNCTIONAL SYMBOL SEMICOLON UNDERBAR
0x460841 0x2376 # APL FUNCTIONAL SYMBOL ALPHA UNDERBAR
0x460842 0x234A # APL FUNCTIONAL SYMBOL DOWN TACK UNDERBAR
0x460845 0x2377 # APL FUNCTIONAL SYMBOL EPSILON UNDERBAR
0x460848 0x2359 # APL FUNCTIONAL SYMBOL DELTA UNDERBAR
0x460849 0x2378 # APL FUNCTIONAL SYMBOL IOTA UNDERBAR
0x46084A 0x235B # APL FUNCTIONAL SYMBOL JOT UNDERBAR
0x46084B 0x2357 # APL FUNCTIONAL SYMBOL QUAD DOWNWARDS ARROW
0x46084B 0x2358 # APL FUNCTIONAL SYMBOL QUOTE UNDERBAR
0x46084F 0x235C # APL FUNCTIONAL SYMBOL CIRCLE UNDERBAR
0x460857 0x2379 # APL FUNCTIONAL SYMBOL OMEGA UNDERBAR
0x460858 0x2287 # SUPERSET OF OR EQUAL TO
0x460860 0x235A # APL FUNCTIONAL SYMBOL DIAMOND UNDERBAR
0x47 0x2207 # NABLA
0x470821 0x2362 # APL FUNCTIONAL SYMBOL DEL DIAERESIS
0x47084C 0x2354 # APL FUNCTIONAL SYMBOL QUAD DEL
0x47084D 0x2352 # APL FUNCTIONAL SYMBOL DEL STILE
0x470854 0x236B # APL FUNCTIONAL SYMBOL DEL TILDE
0x48 0x2206 # INCREMENT
0x480846 0x2359 # APL FUNCTIONAL SYMBOL DELTA UNDERBAR
0x48084C 0x234D # APL FUNCTIONAL SYMBOL QUAD DELTA
0x48084D 0x234B # APL FUNCTIONAL SYMBOL DELTA STILE
0x49 0x2373 # APL FUNCTIONAL SYMBOL IOTA
0x490846 0x2378 # APL FUNCTIONAL SYMBOL IOTA UNDERBAR
0x4A 0x2218 # RING OPERATOR
0x4A0821 0x2364 # APL FUNCTIONAL SYMBOL JOT DIAERESIS
0x4A0842 0x234E # APL FUNCTIONAL SYMBOL DOWN TACK JOT
0x4A0843 0x235D # APL FUNCTIONAL SYMBOL UP SHOE JOT
0x4A0846 0x235B # APL FUNCTIONAL SYMBOL JOT UNDERBAR
0x4A084C 0x233B # APL FUNCTIONAL SYMBOL QUAD JOT
0x4A084E 0x2355 # APL FUNCTIONAL SYMBOL UP TACK JOT
0x4B 0x0027 # APOSTROPHE
0x4B082E 0x0021 # EXCLAMATION MARK
0x4B0846 0x2357 # APL FUNCTIONAL SYMBOL QUAD DOWNWARDS ARROW
0x4B0846 0x2358 # APL FUNCTIONAL SYMBOL QUOTE UNDERBAR
0x4B084C 0x235E # APL FUNCTIONAL SYMBOL QUOTE QUAD
0x4C 0x2395 # APL FUNCTIONAL SYMBOL QUAD
0x4C0823 0x2343 # APL FUNCTIONAL SYMBOL QUAD LESS-THAN
0x4C0826 0x2344 # APL FUNCTIONAL SYMBOL QUAD GREATER-THAN
0x4C0828 0x234C # APL FUNCTIONAL SYMBOL QUAD DOWN CARET
0x4C0829 0x2353 # APL FUNCTIONAL SYMBOL QUAD UP CARET
0x4C082A 0x2338 # APL FUNCTIONAL SYMBOL QUAD EQUAL
0x4C082A 0x236F # APL FUNCTIONAL SYMBOL QUAD NOT EQUAL
0x4C082B 0x2339 # APL FUNCTIONAL SYMBOL QUAD DIVIDE
0x4C082F 0x2341 # APL FUNCTIONAL SYMBOL QUAD SLASH
0x4C083E 0x2360 # APL FUNCTIONAL SYMBOL QUAD COLON
0x4C083F 0x2342 # APL FUNCTIONAL SYMBOL QUAD BACKSLASH
0x4C0847 0x2354 # APL FUNCTIONAL SYMBOL QUAD DEL
0x4C0848 0x234D # APL FUNCTIONAL SYMBOL QUAD DELTA
0x4C084A 0x233B # APL FUNCTIONAL SYMBOL QUAD JOT
0x4C084B 0x235E # APL FUNCTIONAL SYMBOL QUOTE QUAD
0x4C084F 0x233C # APL FUNCTIONAL SYMBOL QUAD CIRCLE
0x4C0851 0x2370 # APL FUNCTIONAL SYMBOL QUAD QUESTION
0x4C0859 0x2350 # APL FUNCTIONAL SYMBOL QUAD UPWARDS ARROW
0x4C085B 0x2347 # APL FUNCTIONAL SYMBOL QUAD LEFTWARDS ARROW
0x4C085D 0x2348 # APL FUNCTIONAL SYMBOL QUAD RIGHTWARDS ARROW
0x4C0860 0x233A # APL FUNCTIONAL SYMBOL QUAD DIAMOND
0x4D 0x2223 # DIVIDES
0x4D0847 0x2352 # APL FUNCTIONAL SYMBOL DEL STILE
0x4D0848 0x234B # APL FUNCTIONAL SYMBOL DELTA STILE
0x4D084F 0x233D # APL FUNCTIONAL SYMBOL CIRCLE STILE
0x4D0854 0x236D # APL FUNCTIONAL SYMBOL STILE TILDE
0x4D0856 0x2366 # APL FUNCTIONAL SYMBOL DOWN SHOE STILE
0x4D085A 0x2367 # APL FUNCTIONAL SYMBOL LEFT SHOE STILE
0x4D085B 0x2345 # APL FUNCTIONAL SYMBOL LEFTWARDS VANE
0x4D085D 0x2346 # APL FUNCTIONAL SYMBOL RIGHTWARDS VANE
0x4E 0x22A4 # DOWN TACK
0x4E0821 0x2361 # APL FUNCTIONAL SYMBOL UP TACK DIAERESIS
0x4E0840 0x2351 # APL FUNCTIONAL SYMBOL UP TACK OVERBAR
0x4E0842 0x2336 # APL FUNCTIONAL SYMBOL I-BEAM
0x4E084A 0x2355 # APL FUNCTIONAL SYMBOL UP TACK JOT
0x4F 0x25CB # WHITE CIRCLE
0x4F0821 0x2365 # APL FUNCTIONAL SYMBOL CIRCLE DIAERESIS
0x4F082F 0x2205 # EMPTY SET
0x4F083F 0x2349 # APL FUNCTIONAL SYMBOL CIRCLE BACKSLASH
0x4F0846 0x235C # APL FUNCTIONAL SYMBOL CIRCLE UNDERBAR
0x4F084C 0x233C # APL FUNCTIONAL SYMBOL QUAD CIRCLE
0x4F084D 0x233D # APL FUNCTIONAL SYMBOL CIRCLE STILE
0x4F0850 0x235F # APL FUNCTIONAL SYMBOL CIRCLE STAR
0x4F085F 0x2296 # CIRCLED MINUS
0x50 0x22C6 # STAR OPERATOR
0x500821 0x2363 # APL FUNCTIONAL SYMBOL STAR DIAERESIS
0x50084F 0x235F # APL FUNCTIONAL SYMBOL CIRCLE STAR
0x51 0x003F # QUESTION MARK
0x51084C 0x2370 # APL FUNCTIONAL SYMBOL QUAD QUESTION
0x52 0x2374 # APL FUNCTIONAL SYMBOL RHO
0x53 0x2308 # LEFT CEILING
0x54 0x223C # TILDE OPERATOR
0x540821 0x2368 # APL FUNCTIONAL SYMBOL TILDE DIAERESIS
0x540828 0x2371 # APL FUNCTIONAL SYMBOL DOWN CARET TILDE
0x540829 0x2372 # APL FUNCTIONAL SYMBOL UP CARET TILDE
0x540830 0x236C # APL FUNCTIONAL SYMBOL ZILDE
0x540847 0x236B # APL FUNCTIONAL SYMBOL DEL TILDE
0x54084D 0x236D # APL FUNCTIONAL SYMBOL STILE TILDE
0x55 0x2193 # DOWNWARDS ARROW
0x55085F 0x2356 # APL FUNCTIONAL SYMBOL DOWNWARDS VANE
0x56 0x222A # UNION
0x56084D 0x2366 # APL FUNCTIONAL SYMBOL DOWN SHOE STILE
0x57 0x2375 # APL FUNCTIONAL SYMBOL OMEGA
0x570846 0x2379 # APL FUNCTIONAL SYMBOL OMEGA UNDERBAR
0x58 0x2283 # SUPERSET OF
0x580846 0x2287 # SUPERSET OF OR EQUAL TO
0x59 0x2191 # UPWARDS ARROW
0x59084C 0x2350 # APL FUNCTIONAL SYMBOL QUAD UPWARDS ARROW
0x59085F 0x234F # APL FUNCTIONAL SYMBOL UPWARDS VANE
0x5A 0x2282 # SUBSET OF
0x5A0846 0x2286 # SUBSET OF OR EQUAL TO
0x5A084D 0x2367 # APL FUNCTIONAL SYMBOL LEFT SHOE STILE
0x5A085F 0x233E # APL FUNCTIONAL SYMBOL CIRCLE JOT
0x5B 0x2190 # LEFTWARDS ARROW
0x5B084C 0x2347 # APL FUNCTIONAL SYMBOL QUAD LEFTWARDS ARROW
0x5B084D 0x2345 # APL FUNCTIONAL SYMBOL LEFTWARDS VANE
0x5C 0x22A2 # RIGHT TACK
0x5D 0x2192 # RIGHTWARDS ARROW
0x5D084C 0x2348 # APL FUNCTIONAL SYMBOL QUAD RIGHTWARDS ARROW
0x5D084D 0x2346 # APL FUNCTIONAL SYMBOL RIGHTWARDS VANE
0x5E 0x2265 # GREATER-THAN OR EQUAL TO
0x5F 0x002D # HYPHEN-MINUS
0x5F082C 0x236A # APL FUNCTIONAL SYMBOL COMMA BAR
0x5F082F 0x233F # APL FUNCTIONAL SYMBOL SLASH BAR
0x5F083F 0x2340 # APL FUNCTIONAL SYMBOL BACKSLASH BAR
0x5F084F 0x2296 # CIRCLED MINUS
0x5F0855 0x2356 # APL FUNCTIONAL SYMBOL DOWNWARDS VANE
0x5F0859 0x234F # APL FUNCTIONAL SYMBOL UPWARDS VANE
0x5F085A 0x233E # APL FUNCTIONAL SYMBOL CIRCLE JOT
0x60 0x22C4 # DIAMOND OPERATOR
0x600846 0x235A # APL FUNCTIONAL SYMBOL DIAMOND UNDERBAR
0x60084C 0x233A # APL FUNCTIONAL SYMBOL QUAD DIAMOND
0x61 0x0041 # LATIN CAPITAL LETTER A
0x62 0x0042 # LATIN CAPITAL LETTER B
0x63 0x0043 # LATIN CAPITAL LETTER C
0x64 0x0044 # LATIN CAPITAL LETTER D
0x65 0x0045 # LATIN CAPITAL LETTER E
0x66 0x0046 # LATIN CAPITAL LETTER F
0x67 0x0047 # LATIN CAPITAL LETTER G
0x68 0x0048 # LATIN CAPITAL LETTER H
0x69 0x0049 # LATIN CAPITAL LETTER I
0x6A 0x004A # LATIN CAPITAL LETTER J
0x6B 0x004B # LATIN CAPITAL LETTER K
0x6C 0x004C # LATIN CAPITAL LETTER L
0x6D 0x004D # LATIN CAPITAL LETTER M
0x6E 0x004E # LATIN CAPITAL LETTER N
0x6F 0x004F # LATIN CAPITAL LETTER O
0x70 0x0050 # LATIN CAPITAL LETTER P
0x71 0x0051 # LATIN CAPITAL LETTER Q
0x72 0x0052 # LATIN CAPITAL LETTER R
0x73 0x0053 # LATIN CAPITAL LETTER S
0x74 0x0054 # LATIN CAPITAL LETTER T
0x75 0x0055 # LATIN CAPITAL LETTER U
0x76 0x0056 # LATIN CAPITAL LETTER V
0x77 0x0057 # LATIN CAPITAL LETTER W
0x78 0x0058 # LATIN CAPITAL LETTER X
0x79 0x0059 # LATIN CAPITAL LETTER Y
0x7A 0x005A # LATIN CAPITAL LETTER Z
0x7B 0x007B # LEFT CURLY BRACKET
0x7C 0x22A3 # LEFT TACK
0x7D 0x007D # RIGHT CURLY BRACKET
0x7E 0x0024 # DOLLAR SIGN
@@ -0,0 +1,289 @@
#
# $Id: JAGHBUB.TXT,v 1.1 2006/02/03 18:47:46 mleisher Exp $
#
# Copyright 2006 Computing Research Labs, New Mexico State University
#
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the "Software"),
# to deal in the Software without restriction, including without limitation
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
# and/or sell copies of the Software, and to permit persons to whom the
# Software is furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
# THE COMPUTING RESEARCH LAB OR NEW MEXICO STATE UNIVERSITY BE LIABLE FOR ANY
# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT
# OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
# THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
# Middle Eastern transliteration encoding from Knut Vikør's
# <knut.vikor@smi.uib.no> Jaghbub font package. Entered by hand from
# http://www.smi.uib.no/files/jaghbubWin.zip. See
# http://www.smi.uib.no/ksv/jaghbub.html for more detail.
#
# Some fixes to the original version provided by Knut.
#
# Mark Leisher <mleisher@crl.nmsu.edu>
# 19 January 2006
#
0x00 0x0000 # <control>
0x01 0x0001 # <control>
0x02 0x0002 # <control>
0x03 0x0003 # <control>
0x04 0x0004 # <control>
0x05 0x0005 # <control>
0x06 0x0006 # <control>
0x07 0x0007 # <control>
0x08 0x0008 # <control>
0x09 0x0009 # <control>
0x0A 0x000A # <control>
0x0B 0x000B # <control>
0x0C 0x000C # <control>
0x0D 0x000D # <control>
0x0E 0x000E # <control>
0x0F 0x000F # <control>
0x10 0x0010 # <control>
0x11 0x0011 # <control>
0x12 0x0012 # <control>
0x13 0x0013 # <control>
0x14 0x0014 # <control>
0x15 0x0015 # <control>
0x16 0x0016 # <control>
0x17 0x0017 # <control>
0x18 0x0018 # <control>
0x19 0x0019 # <control>
0x1A 0x001A # <control>
0x1B 0x001B # <control>
0x1C 0x001C # <control>
0x1D 0x001D # <control>
0x1E 0x001E # <control>
0x1F 0x001F # <control>
0x20 0x0020 # SPACE
0x21 0x0021 # EXCLAMATION MARK
0x22 0x0022 # QUOTATION MARK
0x23 0x0023 # NUMBER SIGN
0x24 0x0024 # DOLLAR SIGN
0x25 0x0025 # PERCENT SIGN
0x26 0x0026 # AMPERSAND
0x27 0x0027 # APOSTROPHE
0x28 0x0028 # LEFT PARENTHESIS
0x29 0x0029 # RIGHT PARENTHESIS
0x2A 0x002A # ASTERISK
0x2B 0x002B # PLUS SIGN
0x2C 0x002C # COMMA
0x2D 0x002D # HYPHEN-MINUS
0x2E 0x002E # FULL STOP
0x2F 0x002F # SOLIDUS
0x30 0x0030 # DIGIT ZERO
0x31 0x0031 # DIGIT ONE
0x32 0x0032 # DIGIT TWO
0x33 0x0033 # DIGIT THREE
0x34 0x0034 # DIGIT FOUR
0x35 0x0035 # DIGIT FIVE
0x36 0x0036 # DIGIT SIX
0x37 0x0037 # DIGIT SEVEN
0x38 0x0038 # DIGIT EIGHT
0x39 0x0039 # DIGIT NINE
0x3A 0x003A # COLON
0x3B 0x003B # SEMICOLON
0x3C 0x003C # LESS-THAN SIGN
0x3D 0x003D # EQUALS SIGN
0x3E 0x003E # GREATER-THAN SIGN
0x3F 0x003F # QUESTION MARK
0x40 0x0040 # COMMERCIAL AT
0x41 0x0041 # LATIN CAPITAL LETTER A
0x42 0x0042 # LATIN CAPITAL LETTER B
0x43 0x0043 # LATIN CAPITAL LETTER C
0x44 0x0044 # LATIN CAPITAL LETTER D
0x45 0x0045 # LATIN CAPITAL LETTER E
0x46 0x0046 # LATIN CAPITAL LETTER F
0x47 0x0047 # LATIN CAPITAL LETTER G
0x48 0x0048 # LATIN CAPITAL LETTER H
0x49 0x0049 # LATIN CAPITAL LETTER I
0x4A 0x004A # LATIN CAPITAL LETTER J
0x4B 0x004B # LATIN CAPITAL LETTER K
0x4C 0x004C # LATIN CAPITAL LETTER L
0x4D 0x004D # LATIN CAPITAL LETTER M
0x4E 0x004E # LATIN CAPITAL LETTER N
0x4F 0x004F # LATIN CAPITAL LETTER O
0x50 0x0050 # LATIN CAPITAL LETTER P
0x51 0x0051 # LATIN CAPITAL LETTER Q
0x52 0x0052 # LATIN CAPITAL LETTER R
0x53 0x0053 # LATIN CAPITAL LETTER S
0x54 0x0054 # LATIN CAPITAL LETTER T
0x55 0x0055 # LATIN CAPITAL LETTER U
0x56 0x0056 # LATIN CAPITAL LETTER V
0x57 0x0057 # LATIN CAPITAL LETTER W
0x58 0x0058 # LATIN CAPITAL LETTER X
0x59 0x0059 # LATIN CAPITAL LETTER Y
0x5A 0x005A # LATIN CAPITAL LETTER Z
0x5B 0x005B # LEFT SQUARE BRACKET
0x5C 0x005C # REVERSE SOLIDUS
0x5D 0x005D # RIGHT SQUARE BRACKET
0x5E 0x005E # CIRCUMFLEX ACCENT
0x5F 0x005F # LOW LINE
0x60 0x0060 # GRAVE ACCENT
0x61 0x0061 # LATIN SMALL LETTER A
0x62 0x0062 # LATIN SMALL LETTER B
0x63 0x0063 # LATIN SMALL LETTER C
0x64 0x0064 # LATIN SMALL LETTER D
0x65 0x0065 # LATIN SMALL LETTER E
0x66 0x0066 # LATIN SMALL LETTER F
0x67 0x0067 # LATIN SMALL LETTER G
0x68 0x0068 # LATIN SMALL LETTER H
0x69 0x0069 # LATIN SMALL LETTER I
0x6A 0x006A # LATIN SMALL LETTER J
0x6B 0x006B # LATIN SMALL LETTER K
0x6C 0x006C # LATIN SMALL LETTER L
0x6D 0x006D # LATIN SMALL LETTER M
0x6E 0x006E # LATIN SMALL LETTER N
0x6F 0x006F # LATIN SMALL LETTER O
0x70 0x0070 # LATIN SMALL LETTER P
0x71 0x0071 # LATIN SMALL LETTER Q
0x72 0x0072 # LATIN SMALL LETTER R
0x73 0x0073 # LATIN SMALL LETTER S
0x74 0x0074 # LATIN SMALL LETTER T
0x75 0x0075 # LATIN SMALL LETTER U
0x76 0x0076 # LATIN SMALL LETTER V
0x77 0x0077 # LATIN SMALL LETTER W
0x78 0x0078 # LATIN SMALL LETTER X
0x79 0x0079 # LATIN SMALL LETTER Y
0x7A 0x007A # LATIN SMALL LETTER Z
0x7B 0x007B # LEFT CURLY BRACKET
0x7C 0x007C # VERTICAL LINE
0x7D 0x007D # RIGHT CURLY BRACKET
0x7E 0x007E # TILDE
0x7F 0x007F # <control>
0x80 0x00C4 # LATIN CAPITAL LETTER A WITH DIAERESIS
0x81 0x00C5 # LATIN CAPITAL LETTER A WITH RING ABOVE
0x82 0x00C7 # LATIN CAPITAL LETTER C WITH CEDILLA
0x83 0x00C9 # LATIN CAPITAL LETTER E WITH ACUTE
0x84 0x00D1 # LATIN CAPITAL LETTER N WITH TILDE
0x85 0x00D6 # LATIN CAPITAL LETTER O WITH DIAERESIS
0x86 0x016A # LATIN CAPITAL LETTER U WITH MACRON
0x87 0x00E1 # LATIN SMALL LETTER A WITH ACUTE
0x88 0x00E0 # LATIN SMALL LETTER A WITH GRAVE
0x89 0x00E2 # LATIN SMALL LETTER A WITH CIRCUMFLEX
0x8A 0x00E4 # LATIN SMALL LETTER A WITH DIAERESIS
0x8B 0x00E3 # LATIN SMALL LETTER A WITH TILDE
0x8C 0x00E5 # LATIN SMALL LETTER A WITH RING ABOVE
0x8D 0x00E7 # LATIN SMALL LETTER C WITH CEDILLA
0x8E 0x00E9 # LATIN SMALL LETTER E WITH ACUTE
0x8F 0x00E8 # LATIN SMALL LETTER E WITH GRAVE
0x90 0x00EA # LATIN SMALL LETTER E WITH CIRCUMFLEX
0x91 0x00EB # LATIN SMALL LETTER E WITH DIAERESIS
0x92 0x00ED # LATIN SMALL LETTER I WITH ACUTE
0x93 0x00EC # LATIN SMALL LETTER I WITH GRAVE
0x94 0x00EE # LATIN SMALL LETTER I WITH CIRCUMFLEX
0x95 0x00EF # LATIN SMALL LETTER I WITH DIAERESIS
0x96 0x00F1 # LATIN SMALL LETTER N WITH TILDE
0x97 0x00F3 # LATIN SMALL LETTER O WITH ACUTE
0x98 0x00F2 # LATIN SMALL LETTER O WITH GRAVE
0x99 0x00F4 # LATIN SMALL LETTER O WITH CIRCUMFLEX
0x9A 0x00F6 # LATIN SMALL LETTER O WITH DIAERESIS
0x9B 0x00F5 # LATIN SMALL LETTER O WITH TILDE
0x9C 0x00FA # LATIN SMALL LETTER U WITH ACUTE
0x9D 0x00F9 # LATIN SMALL LETTER U WITH GRAVE
0x9E 0x00FB # LATIN SMALL LETTER U WITH CIRCUMFLEX
0x9F 0x016B # LATIN SMALL LETTER U WITH MACRON
0xA0 0x1E6D # LATIN SMALL LETTER T WITH DOT BELOW
0xA1 0x00B0 # DEGREE SIGN
0xA2 0x00A2 # CENT SIGN
0xA3 0x00A3 # POUND SIGN
0xA4 0x00A7 # SECTION SIGN
0xA5 0x2022 # BULLET
0xA6 0x00B6 # PILCROW SIGN
0xA7 0x1E63 # LATIN SMALL LETTER S WITH DOT BELOW
0xA8 0x0340 # COMBINING GRAVE TONE MARK
0xA9 0x0301 # COMBINING ACUTE ACCENT
0xAA 0x0300 # COMBINING GRAVE ACCENT
0xAB 0x00B4 # ACUTE ACCENT
0xAC 0x00A8 # DIAERESIS
0xAD 0x0324 # COMBINING DIAERESIS BELOW
0xAE 0x00C6 # LATIN CAPITAL LETTER AE
0xAF 0x00D8 # LATIN CAPITAL LETTER O WITH STROKE
0xB0 0x0121 # LATIN SMALL LETTER G WITH DOT ABOVE
0xB1 0x1E6F # LATIN SMALL LETTER T WITH LINE BELOW
0xB2 0x1E0F # LATIN SMALL LETTER D WITH LINE BELOW
0xB3 0x1E0E # LATIN CAPITAL LETTER D WITH LINE BELOW
0xB4 0x0259 # LATIN SMALL LETTER SCHWA
0xB5 0x00FC # LATIN SMALL LETTER U WITH DIAERESIS
0xB6 0x1E0D # LATIN SMALL LETTER D WITH DOT BELOW
0xB7 0x1E62 # LATIN CAPITAL LETTER S WITH DOT BELOW
0xB8 0x01E6 # LATIN CAPITAL LETTER G WITH CARON
0xB9 0x01E7 # LATIN SMALL LETTER G WITH CARON
0xBA 0x1E2A # LATIN CAPITAL LETTER H WITH BREVE BELOW
0xBB 0x0131 # LATIN SMALL LETTER DOTLESS I
0xBC 0x0130 # LATIN CAPITAL LETTER I WITH DOT ABOVE
0xBD 0x014D # LATIN SMALL LETTER O WITH MACRON
0xBE 0x00E6 # LATIN SMALL LETTER AE
0xBF 0x00F8 # LATIN SMALL LETTER O WITH STROKE
0xC0 0x00BF # INVERTED QUESTION MARK
0xC1 0x0301 # COMBINING ACUTE ACCENT
0xC2 0x00AC # NOT SIGN
0xC3 0x02BE # MODIFIER LETTER RIGHT HALF RING
0xC4 0x1E2B # LATIN SMALL LETTER H WITH BREVE BELOW
0xC5 0x0327 # COMBINING CEDILLA
0xC6 0x1E0C # LATIN CAPITAL LETTER D WITH DOT BELOW
0xC7 0x00AB # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
0xC8 0x00BB # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
0xC9 0x2026 # HORIZONTAL ELLIPSIS
0xCA 0x00A0 # NO-BREAK SPACE
0xCB 0x00C0 # LATIN CAPITAL LETTER A WITH GRAVE
0xCC 0x00C3 # LATIN CAPITAL LETTER A WITH TILDE
0xCD 0x00D5 # LATIN CAPITAL LETTER O WITH TILDE
0xCE 0x0152 # LATIN CAPITAL LIGATURE OE
0xCF 0x0153 # LATIN SMALL LIGATURE OE
0xD0 0x2013 # EN DASH
0xD1 0x2014 # EM DASH
0xD2 0x201C # LEFT DOUBLE QUOTATION MARK
0xD3 0x201D # RIGHT DOUBLE QUOTATION MARK
0xD4 0x2018 # LEFT SINGLE QUOTATION MARK
0xD5 0x2019 # RIGHT SINGLE QUOTATION MARK
0xD6 0x1E93 # LATIN SMALL LETTER Z WITH DOT BELOW
0xD7 0x0100 # LATIN CAPITAL LETTER A WITH MACRON
0xD8 0x011F # LATIN SMALL LETTER G WITH BREVE
0xD9 0x011E # LATIN CAPITAL LETTER G WITH BREVE
0xDA 0x1E92 # LATIN CAPITAL LETTER Z WITH DOT BELOW
0xDB 0x1E6E # LATIN CAPITAL LETTER T WITH LINE BELOW
0xDC 0x0304 # COMBINING MACRON
0xDD 0x0305 # COMBINING OVERLINE
0xDE 0x02BF # MODIFIER LETTER LEFT HALF RING
0xDF 0x02D9 # DOT ABOVE
0xE0 0x1E6C # LATIN CAPITAL LETTER T WITH DOT BELOW
0xE1 0x014C # LATIN CAPITAL LETTER O WITH MACRON
0xE2 0x0323 # COMBINING DOT BELOW
0xE3 0x0307 # COMBINING DOT ABOVE
0xE4 0x0120 # LATIN CAPITAL LETTER G WITH DOT ABOVE
0xE5 0x00C2 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
0xE6 0x00CA # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
0xE7 0x00C1 # LATIN CAPITAL LETTER A WITH ACUTE
0xE8 0x00CB # LATIN CAPITAL LETTER E WITH DIAERESIS
0xE9 0x00C8 # LATIN CAPITAL LETTER E WITH GRAVE
0xEA 0x00CD # LATIN CAPITAL LETTER I WITH ACUTE
0xEB 0x00CE # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
0xEC 0x00CF # LATIN CAPITAL LETTER I WITH DIAERESIS
0xED 0x00CC # LATIN CAPITAL LETTER I WITH GRAVE
0xEE 0x00D3 # LATIN CAPITAL LETTER O WITH ACUTE
0xEF 0x00D4 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
0xF0 0x0101 # LATIN SMALL LETTER A WITH MACRON
0xF1 0x00D2 # LATIN CAPITAL LETTER O WITH GRAVE
0xF2 0x00DA # LATIN CAPITAL LETTER U WITH ACUTE
0xF3 0x00DB # LATIN CAPITAL LETTER U WITH CIRCUMFLEX
0xF4 0x00D9 # LATIN CAPITAL LETTER U WITH GRAVE
0xF5 0x012B # LATIN SMALL LETTER I WITH MACRON
0xF6 0x012A # LATIN CAPITAL LETTER I WITH MACRON
0xF7 0x00DC # LATIN CAPITAL LETTER U WITH DIAERESIS
0xF8 0x00F8 # CARON
0xF9 0x1E24 # LATIN CAPITAL LETTER H WITH DOT BELOW
0xFA 0x0113 # LATIN SMALL LETTER E WITH MACRON
0xFB 0x0112 # LATIN CAPITAL LETTER E WITH MACRON
0xFC 0x030C # COMBINING CARON
0xFD 0x00DF # LATIN SMALL LETTER SHARP S
0xFE 0x1E25 # LATIN SMALL LETTER H WITH DOT BELOW
0xFF 0x0331 # COMBINING MACRON BELOW
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,291 @@
#
# $Id: KOI8RU.TXT,v 1.4 1999/12/20 19:03:07 mleisher Exp $
#
# Copyright 1999 Computing Research Labs, New Mexico State University
#
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the "Software"),
# to deal in the Software without restriction, including without limitation
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
# and/or sell copies of the Software, and to permit persons to whom the
# Software is furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
# THE COMPUTING RESEARCH LAB OR NEW MEXICO STATE UNIVERSITY BE LIABLE FOR ANY
# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT
# OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
# THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
#
# KOI8-RU Belorusian/Ukrainian Cyrillic to Unicode 2.1 mapping table.
# Typed in by hand from http://www.fingertipsoft.com/ref/cyrillic/charsets.html
#
# Adjusted to match RFC1489 for 0x94 and 0x95.
#
# THIS ENCODING IS OBSOLETED AS INDICATED AT:
# http://www.park.kiev.ua/multiling/ml-docs
#
# Mark Leisher <mleisher@crl.nmsu.edu>
# 20 December 1999
#
0x00 0x0000 # <control>
0x01 0x0001 # <control>
0x02 0x0002 # <control>
0x03 0x0003 # <control>
0x04 0x0004 # <control>
0x05 0x0005 # <control>
0x06 0x0006 # <control>
0x07 0x0007 # <control>
0x08 0x0008 # <control>
0x09 0x0009 # <control>
0x0A 0x000A # <control>
0x0B 0x000B # <control>
0x0C 0x000C # <control>
0x0D 0x000D # <control>
0x0E 0x000E # <control>
0x0F 0x000F # <control>
0x10 0x0010 # <control>
0x11 0x0011 # <control>
0x12 0x0012 # <control>
0x13 0x0013 # <control>
0x14 0x0014 # <control>
0x15 0x0015 # <control>
0x16 0x0016 # <control>
0x17 0x0017 # <control>
0x18 0x0018 # <control>
0x19 0x0019 # <control>
0x1A 0x001A # <control>
0x1B 0x001B # <control>
0x1C 0x001C # <control>
0x1D 0x001D # <control>
0x1E 0x001E # <control>
0x1F 0x001F # <control>
0x20 0x0020 # SPACE
0x21 0x0021 # EXCLAMATION MARK
0x22 0x0022 # QUOTATION MARK
0x23 0x0023 # NUMBER SIGN
0x24 0x0024 # DOLLAR SIGN
0x25 0x0025 # PERCENT SIGN
0x26 0x0026 # AMPERSAND
0x27 0x0027 # APOSTROPHE
0x28 0x0028 # LEFT PARENTHESIS
0x29 0x0029 # RIGHT PARENTHESIS
0x2A 0x002A # ASTERISK
0x2B 0x002B # PLUS SIGN
0x2C 0x002C # COMMA
0x2D 0x002D # HYPHEN-MINUS
0x2E 0x002E # FULL STOP
0x2F 0x002F # SOLIDUS
0x30 0x0030 # DIGIT ZERO
0x31 0x0031 # DIGIT ONE
0x32 0x0032 # DIGIT TWO
0x33 0x0033 # DIGIT THREE
0x34 0x0034 # DIGIT FOUR
0x35 0x0035 # DIGIT FIVE
0x36 0x0036 # DIGIT SIX
0x37 0x0037 # DIGIT SEVEN
0x38 0x0038 # DIGIT EIGHT
0x39 0x0039 # DIGIT NINE
0x3A 0x003A # COLON
0x3B 0x003B # SEMICOLON
0x3C 0x003C # LESS-THAN SIGN
0x3D 0x003D # EQUALS SIGN
0x3E 0x003E # GREATER-THAN SIGN
0x3F 0x003F # QUESTION MARK
0x40 0x0040 # COMMERCIAL AT
0x41 0x0041 # LATIN CAPITAL LETTER A
0x42 0x0042 # LATIN CAPITAL LETTER B
0x43 0x0043 # LATIN CAPITAL LETTER C
0x44 0x0044 # LATIN CAPITAL LETTER D
0x45 0x0045 # LATIN CAPITAL LETTER E
0x46 0x0046 # LATIN CAPITAL LETTER F
0x47 0x0047 # LATIN CAPITAL LETTER G
0x48 0x0048 # LATIN CAPITAL LETTER H
0x49 0x0049 # LATIN CAPITAL LETTER I
0x4A 0x004A # LATIN CAPITAL LETTER J
0x4B 0x004B # LATIN CAPITAL LETTER K
0x4C 0x004C # LATIN CAPITAL LETTER L
0x4D 0x004D # LATIN CAPITAL LETTER M
0x4E 0x004E # LATIN CAPITAL LETTER N
0x4F 0x004F # LATIN CAPITAL LETTER O
0x50 0x0050 # LATIN CAPITAL LETTER P
0x51 0x0051 # LATIN CAPITAL LETTER Q
0x52 0x0052 # LATIN CAPITAL LETTER R
0x53 0x0053 # LATIN CAPITAL LETTER S
0x54 0x0054 # LATIN CAPITAL LETTER T
0x55 0x0055 # LATIN CAPITAL LETTER U
0x56 0x0056 # LATIN CAPITAL LETTER V
0x57 0x0057 # LATIN CAPITAL LETTER W
0x58 0x0058 # LATIN CAPITAL LETTER X
0x59 0x0059 # LATIN CAPITAL LETTER Y
0x5A 0x005A # LATIN CAPITAL LETTER Z
0x5B 0x005B # LEFT SQUARE BRACKET
0x5C 0x005C # REVERSE SOLIDUS
0x5D 0x005D # RIGHT SQUARE BRACKET
0x5E 0x005E # CIRCUMFLEX ACCENT
0x5F 0x005F # LOW LINE
0x60 0x0060 # GRAVE ACCENT
0x61 0x0061 # LATIN SMALL LETTER A
0x62 0x0062 # LATIN SMALL LETTER B
0x63 0x0063 # LATIN SMALL LETTER C
0x64 0x0064 # LATIN SMALL LETTER D
0x65 0x0065 # LATIN SMALL LETTER E
0x66 0x0066 # LATIN SMALL LETTER F
0x67 0x0067 # LATIN SMALL LETTER G
0x68 0x0068 # LATIN SMALL LETTER H
0x69 0x0069 # LATIN SMALL LETTER I
0x6A 0x006A # LATIN SMALL LETTER J
0x6B 0x006B # LATIN SMALL LETTER K
0x6C 0x006C # LATIN SMALL LETTER L
0x6D 0x006D # LATIN SMALL LETTER M
0x6E 0x006E # LATIN SMALL LETTER N
0x6F 0x006F # LATIN SMALL LETTER O
0x70 0x0070 # LATIN SMALL LETTER P
0x71 0x0071 # LATIN SMALL LETTER Q
0x72 0x0072 # LATIN SMALL LETTER R
0x73 0x0073 # LATIN SMALL LETTER S
0x74 0x0074 # LATIN SMALL LETTER T
0x75 0x0075 # LATIN SMALL LETTER U
0x76 0x0076 # LATIN SMALL LETTER V
0x77 0x0077 # LATIN SMALL LETTER W
0x78 0x0078 # LATIN SMALL LETTER X
0x79 0x0079 # LATIN SMALL LETTER Y
0x7A 0x007A # LATIN SMALL LETTER Z
0x7B 0x007B # LEFT CURLY BRACKET
0x7C 0x007C # VERTICAL LINE
0x7D 0x007D # RIGHT CURLY BRACKET
0x7E 0x007E # TILDE
0x7F 0x007F # <control>
0x80 0x2500 # BOX DRAWINGS LIGHT HORIZONTAL
0x81 0x2502 # BOX DRAWINGS LIGHT VERTICAL
0x82 0x250C # BOX DRAWINGS LIGHT DOWN AND RIGHT
0x83 0x2510 # BOX DRAWINGS LIGHT DOWN AND LEFT
0x84 0x2514 # BOX DRAWINGS LIGHT UP AND RIGHT
0x85 0x2518 # BOX DRAWINGS LIGHT UP AND LEFT
0x86 0x251C # BOX DRAWINGS LIGHT VERTICAL AND RIGHT
0x87 0x2524 # BOX DRAWINGS LIGHT VERTICAL AND LEFT
0x88 0x252C # BOX DRAWINGS LIGHT DOWN AND HORIZONTAL
0x89 0x2534 # BOX DRAWINGS LIGHT UP AND HORIZONTAL
0x8A 0x253C # BOX DRAWINGS LIGHT VERTICAL AND HORIZONTAL
0x8B 0x2580 # UPPER HALF BLOCK
0x8C 0x2584 # LOWER HALF BLOCK
0x8D 0x2588 # FULL BLOCK
0x8E 0x258C # LEFT HALF BLOCK
0x8F 0x2590 # RIGHT HALF BLOCK
0x90 0x2591 # LIGHT SHADE
0x91 0x2592 # MEDIUM SHADE
0x92 0x2593 # DARK SHADE
0x93 0x201C # LEFT DOUBLE QUOTATION MARK
0x94 0x25A0 # BLACK SQUARE
0x95 0x2219 # BULLET OPERATOR
0x96 0x201D # RIGHT DOUBLE QUOTATION MARK
0x97 0x2014 # EM DASH
0x98 0x2116 # NUMERO SIGN
0x99 0x2122 # TRADE MARK SIGN
0x9A 0x00A0 # NO-BREAK SPACE
0x9B 0x00BB # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
0x9C 0x00AE # REGISTERED SIGN
0x9D 0x00AB # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
0x9E 0x00B7 # MIDDLE DOT
0x9F 0x00A4 # CURRENCY SIGN
0xA0 0x2550 # BOX DRAWINGS DOUBLE HORIZONTAL
0xA1 0x2551 # BOX DRAWINGS DOUBLE VERTICAL
0xA2 0x2552 # BOX DRAWINGS DOWN SINGLE AND RIGHT DOUBLE
0xA3 0x0451 # CYRILLIC SMALL LETTER IO
0xA4 0x0454 # CYRILLIC SMALL LETTER UKRAINIAN IE
0xA5 0x2554 # BOX DRAWINGS DOUBLE DOWN AND RIGHT
0xA6 0x0456 # CYRILLIC SMALL LETTER BYELORUSSIAN-UKRAINIAN I
0xA7 0x0457 # CYRILLIC SMALL LETTER YI
0xA8 0x2557 # BOX DRAWINGS DOUBLE DOWN AND LEFT
0xA9 0x2558 # BOX DRAWINGS UP SINGLE AND RIGHT DOUBLE
0xAA 0x2559 # BOX DRAWINGS UP DOUBLE AND RIGHT SINGLE
0xAB 0x255A # BOX DRAWINGS DOUBLE UP AND RIGHT
0xAC 0x255B # BOX DRAWINGS UP SINGLE AND LEFT DOUBLE
0xAD 0x0491 # CYRILLIC SMALL LETTER GHE WITH UPTURN
0xAE 0x045E # CYRILLIC SMALL LETTER SHORT U
0xAF 0x255E # BOX DRAWINGS VERTICAL SINGLE AND RIGHT DOUBLE
0xB0 0x255F # BOX DRAWINGS VERTICAL DOUBLE AND RIGHT SINGLE
0xB1 0x2560 # BOX DRAWINGS DOUBLE VERTICAL AND RIGHT
0xB2 0x2561 # BOX DRAWINGS VERTICAL SINGLE AND LEFT DOUBLE
0xB3 0x0401 # CYRILLIC CAPITAL LETTER IO
0xB4 0x0404 # CYRILLIC CAPITAL LETTER UKRAINIAN IE
0xB5 0x2563 # BOX DRAWINGS DOUBLE VERTICAL AND LEFT
0xB6 0x0406 # CYRILLIC CAPITAL LETTER BYELORUSSIAN-UKRAINIAN I
0xB7 0x0407 # CYRILLIC CAPITAL LETTER YI
0xB8 0x2566 # BOX DRAWINGS DOWN DOUBLE AND HORIZONTAL SINGLE
0xB9 0x2567 # BOX DRAWINGS UP SINGLE AND HORIZONTAL DOUBLE
0xBA 0x2568 # BOX DRAWINGS UP DOUBLE AND HORIZONTAL SINGLE
0xBB 0x2569 # BOX DRAWINGS DOUBLE UP AND HORIZONTAL
0xBC 0x256A # BOX DRAWINGS VERTICAL SINGLE AND HORIZONTAL DOUBLE
0xBD 0x0490 # CYRILLIC CAPITAL LETTER GHE WITH UPTURN
0xBE 0x040E # CYRILLIC CAPITAL LETTER SHORT U
0xBF 0x00A9 # COPYRIGHT SIGN
0xC0 0x044E # CYRILLIC SMALL LETTER YU
0xC1 0x0430 # CYRILLIC SMALL LETTER A
0xC2 0x0431 # CYRILLIC SMALL LETTER BE
0xC3 0x0446 # CYRILLIC SMALL LETTER TSE
0xC4 0x0434 # CYRILLIC SMALL LETTER DE
0xC5 0x0435 # CYRILLIC SMALL LETTER IE
0xC6 0x0444 # CYRILLIC SMALL LETTER EF
0xC7 0x0433 # CYRILLIC SMALL LETTER GHE
0xC8 0x0445 # CYRILLIC SMALL LETTER HA
0xC9 0x0438 # CYRILLIC SMALL LETTER I
0xCA 0x0439 # CYRILLIC SMALL LETTER SHORT I
0xCB 0x043A # CYRILLIC SMALL LETTER KA
0xCC 0x043B # CYRILLIC SMALL LETTER EL
0xCD 0x043C # CYRILLIC SMALL LETTER EM
0xCE 0x043D # CYRILLIC SMALL LETTER EN
0xCF 0x043E # CYRILLIC SMALL LETTER O
0xD0 0x043F # CYRILLIC SMALL LETTER PE
0xD1 0x044F # CYRILLIC SMALL LETTER YA
0xD2 0x0440 # CYRILLIC SMALL LETTER ER
0xD3 0x0441 # CYRILLIC SMALL LETTER ES
0xD4 0x0442 # CYRILLIC SMALL LETTER TE
0xD5 0x0443 # CYRILLIC SMALL LETTER U
0xD6 0x0436 # CYRILLIC SMALL LETTER ZHE
0xD7 0x0432 # CYRILLIC SMALL LETTER VE
0xD8 0x044C # CYRILLIC SMALL LETTER SOFT SIGN
0xD9 0x044B # CYRILLIC SMALL LETTER YERU
0xDA 0x0437 # CYRILLIC SMALL LETTER ZE
0xDB 0x0448 # CYRILLIC SMALL LETTER SHA
0xDC 0x044D # CYRILLIC SMALL LETTER E
0xDD 0x0449 # CYRILLIC SMALL LETTER SHCHA
0xDE 0x0447 # CYRILLIC SMALL LETTER CHE
0xDF 0x044A # CYRILLIC SMALL LETTER HARD SIGN
0xE0 0x042E # CYRILLIC CAPITAL LETTER YU
0xE1 0x0410 # CYRILLIC CAPITAL LETTER A
0xE2 0x0411 # CYRILLIC CAPITAL LETTER BE
0xE3 0x0426 # CYRILLIC CAPITAL LETTER TSE
0xE4 0x0414 # CYRILLIC CAPITAL LETTER DE
0xE5 0x0415 # CYRILLIC CAPITAL LETTER IE
0xE6 0x0424 # CYRILLIC CAPITAL LETTER EF
0xE7 0x0413 # CYRILLIC CAPITAL LETTER GHE
0xE8 0x0425 # CYRILLIC CAPITAL LETTER HA
0xE9 0x0418 # CYRILLIC CAPITAL LETTER I
0xEA 0x0419 # CYRILLIC CAPITAL LETTER SHORT I
0xEB 0x041A # CYRILLIC CAPITAL LETTER KA
0xEC 0x041B # CYRILLIC CAPITAL LETTER EL
0xED 0x041C # CYRILLIC CAPITAL LETTER EM
0xEE 0x041D # CYRILLIC CAPITAL LETTER EN
0xEF 0x041E # CYRILLIC CAPITAL LETTER O
0xF0 0x041F # CYRILLIC CAPITAL LETTER PE
0xF1 0x042F # CYRILLIC CAPITAL LETTER YA
0xF2 0x0420 # CYRILLIC CAPITAL LETTER ER
0xF3 0x0421 # CYRILLIC CAPITAL LETTER ES
0xF4 0x0422 # CYRILLIC CAPITAL LETTER TE
0xF5 0x0423 # CYRILLIC CAPITAL LETTER U
0xF6 0x0416 # CYRILLIC CAPITAL LETTER ZHE
0xF7 0x0412 # CYRILLIC CAPITAL LETTER VE
0xF8 0x042C # CYRILLIC CAPITAL LETTER SOFT SIGN
0xF9 0x042B # CYRILLIC CAPITAL LETTER YERU
0xFA 0x0417 # CYRILLIC CAPITAL LETTER ZE
0xFB 0x0428 # CYRILLIC CAPITAL LETTER SHA
0xFC 0x042D # CYRILLIC CAPITAL LETTER E
0xFD 0x0429 # CYRILLIC CAPITAL LETTER SHCHA
0xFE 0x0427 # CYRILLIC CAPITAL LETTER CHE
0xFF 0x042A # CYRILLIC CAPITAL LETTER HARD SIGN
@@ -0,0 +1,237 @@
0x00 0x0000
0x01 0x0001
0x02 0x0002
0x03 0x0003
0x04 0x0004
0x05 0x0005
0x06 0x0006
0x07 0x0007
0x08 0x0008
0x09 0x0009
0x0A 0x000A
0x0B 0x000B
0x0C 0x000C
0x0D 0x000D
0x0E 0x000E
0x0F 0x000F
0x10 0x0010
0x11 0x0011
0x12 0x0012
0x13 0x0013
0x14 0x0014
0x15 0x0015
0x16 0x0016
0x17 0x0017
0x18 0x0018
0x19 0x0019
0x1A 0x001A
0x1B 0x001B
0x1C 0x001C
0x1D 0x001D
0x1E 0x001E
0x1F 0x001F
0x20 0x0020
0x21 0x0021
0x22 0x0022
0x23 0x0023
0x24 0x0024
0x25 0x0025
0x26 0x0026
0x27 0x0027
0x28 0x0028
0x29 0x0029
0x2A 0x002A
0x2B 0x002B
0x2C 0x002C
0x2D 0x002D
0x2E 0x002E
0x2F 0x002F
0x30 0x0030
0x31 0x0031
0x32 0x0032
0x33 0x0033
0x34 0x0034
0x35 0x0035
0x36 0x0036
0x37 0x0037
0x38 0x0038
0x39 0x0039
0x3A 0x003A
0x3B 0x003B
0x3C 0x003C
0x3D 0x003D
0x3E 0x003E
0x3F 0x003F
0x40 0x0040
0x41 0x0041
0x42 0x0042
0x43 0x0043
0x44 0x0044
0x45 0x0045
0x46 0x0046
0x47 0x0047
0x48 0x0048
0x49 0x0049
0x4A 0x004A
0x4B 0x004B
0x4C 0x004C
0x4D 0x004D
0x4E 0x004E
0x4F 0x004F
0x50 0x0050
0x51 0x0051
0x52 0x0052
0x53 0x0053
0x54 0x0054
0x55 0x0055
0x56 0x0056
0x57 0x0057
0x58 0x0058
0x59 0x0059
0x5A 0x005A
0x5B 0x005B
0x5C 0x005C
0x5D 0x005D
0x5E 0x005E
0x5F 0x005F
0x60 0x0060
0x61 0x0061
0x62 0x0062
0x63 0x0063
0x64 0x0064
0x65 0x0065
0x66 0x0066
0x67 0x0067
0x68 0x0068
0x69 0x0069
0x6A 0x006A
0x6B 0x006B
0x6C 0x006C
0x6D 0x006D
0x6E 0x006E
0x6F 0x006F
0x70 0x0070
0x71 0x0071
0x72 0x0072
0x73 0x0073
0x74 0x0074
0x75 0x0075
0x76 0x0076
0x77 0x0077
0x78 0x0078
0x79 0x0079
0x7A 0x007A
0x7B 0x007B
0x7C 0x007C
0x7D 0x007D
0x7E 0x007E
0x7F 0x007F
0x80 0x049B
0x81 0x0493
0x82 0x201A
0x83 0x0492
0x84 0x201E
0x85 0x2026
0x86 0x2020
0x87 0x2021
0x89 0x2030
0x8A 0x04B3
0x8B 0x2039
0x8C 0x04B2
0x8D 0x04B7
0x8E 0x04B6
0x90 0x049A
0x91 0x2018
0x92 0x2019
0x93 0x201C
0x94 0x201D
0x95 0x2022
0x96 0x2013
0x97 0x2014
0x99 0x2122
0x9B 0x203A
0xA1 0x04EF
0xA2 0x04EE
0xA3 0x0451
0xA4 0x00A4
0xA5 0x04E3
0xA6 0x00A6
0xA7 0x00A7
0xAB 0x00AB
0xAC 0x00AC
0xAD 0x00AD
0xAE 0x00AE
0xB0 0x00B0
0xB1 0x00B1
0xB2 0x00B2
0xB3 0x0401
0xB5 0x04E2
0xB6 0x00B6
0xB7 0x00B7
0xB9 0x2116
0xBB 0x00BB
0xBF 0x00A9
0xC0 0x044E
0xC1 0x0430
0xC2 0x0431
0xC3 0x0446
0xC4 0x0434
0xC5 0x0435
0xC6 0x0444
0xC7 0x0433
0xC8 0x0445
0xC9 0x0438
0xCA 0x0439
0xCB 0x043A
0xCC 0x043B
0xCD 0x043C
0xCE 0x043D
0xCF 0x043E
0xD0 0x043F
0xD1 0x044F
0xD2 0x0440
0xD3 0x0441
0xD4 0x0442
0xD5 0x0443
0xD6 0x0436
0xD7 0x0432
0xD8 0x044C
0xD9 0x044B
0xDA 0x0437
0xDB 0x0448
0xDC 0x044D
0xDD 0x0449
0xDE 0x0447
0xDF 0x044A
0xE0 0x042E
0xE1 0x0410
0xE2 0x0411
0xE3 0x0426
0xE4 0x0414
0xE5 0x0415
0xE6 0x0424
0xE7 0x0413
0xE8 0x0425
0xE9 0x0418
0xEA 0x0419
0xEB 0x041A
0xEC 0x041B
0xED 0x041C
0xEE 0x041D
0xEF 0x041E
0xF0 0x041F
0xF1 0x042F
0xF2 0x0420
0xF3 0x0421
0xF4 0x0422
0xF5 0x0423
0xF6 0x0416
0xF7 0x0412
0xF8 0x042C
0xF9 0x042B
0xFA 0x0417
0xFB 0x0428
0xFC 0x042D
0xFD 0x0429
0xFE 0x0427
0xFF 0x042A
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,208 @@
#
# Name: JIS X 0201 (1976) to Unicode 1.1 Table
# Unicode version: 1.1
# Table version: 0.9
# Table format: Format A
# Date: 8 March 1994
#
# Copyright (c) 1991-1994 Unicode, Inc. All Rights reserved.
#
# This file is provided as-is by Unicode, Inc. (The Unicode Consortium).
# No claims are made as to fitness for any particular purpose. No
# warranties of any kind are expressed or implied. The recipient
# agrees to determine applicability of information provided. If this
# file has been provided on magnetic media by Unicode, Inc., the sole
# remedy for any claim will be exchange of defective media within 90
# days of receipt.
#
# Recipient is granted the right to make copies in any form for
# internal distribution and to freely use the information supplied
# in the creation of products supporting Unicode. Unicode, Inc.
# specifically excludes the right to re-distribute this file directly
# to third parties or other organizations whether for profit or not.
#
# General notes:
#
#
# This table contains one set of mappings from JIS X 0201 into Unicode.
# Note that these data are *possible* mappings only and may not be the
# same as those used by actual products, nor may they be the best suited
# for all uses. For more information on the mappings between various code
# pages incorporating the repertoire of JIS X 0201 and Unicode, consult the
# VENDORS mapping data. Normative information on the mapping between
# JIS X 0201 and Unicode may be found in the Unihan.txt file in the
# latest Unicode Character Database.
#
# If you have carefully considered the fact that the mappings in
# this table are only one possible set of mappings between JIS X 0201 and
# Unicode and have no normative status, but still feel that you
# have located an error in the table that requires fixing, you may
# report any such error to errata@unicode.org.
#
#
# Format: Three tab-separated columns
# Column #1 is the shift JIS code (in hex as 0xXX)
# Column #2 is the Unicode (in hex as 0xXXXX)
# Column #3 the Unicode (ISO 10646) name (follows a comment sign)
#
# The entries are in JIS order
#
#
0x20 0x0020 # SPACE
0x21 0x0021 # EXCLAMATION MARK
0x22 0x0022 # QUOTATION MARK
0x23 0x0023 # NUMBER SIGN
0x24 0x0024 # DOLLAR SIGN
0x25 0x0025 # PERCENT SIGN
0x26 0x0026 # AMPERSAND
0x27 0x0027 # APOSTROPHE
0x28 0x0028 # LEFT PARENTHESIS
0x29 0x0029 # RIGHT PARENTHESIS
0x2A 0x002A # ASTERISK
0x2B 0x002B # PLUS SIGN
0x2C 0x002C # COMMA
0x2D 0x002D # HYPHEN-MINUS
0x2E 0x002E # FULL STOP
0x2F 0x002F # SOLIDUS
0x30 0x0030 # DIGIT ZERO
0x31 0x0031 # DIGIT ONE
0x32 0x0032 # DIGIT TWO
0x33 0x0033 # DIGIT THREE
0x34 0x0034 # DIGIT FOUR
0x35 0x0035 # DIGIT FIVE
0x36 0x0036 # DIGIT SIX
0x37 0x0037 # DIGIT SEVEN
0x38 0x0038 # DIGIT EIGHT
0x39 0x0039 # DIGIT NINE
0x3A 0x003A # COLON
0x3B 0x003B # SEMICOLON
0x3C 0x003C # LESS-THAN SIGN
0x3D 0x003D # EQUALS SIGN
0x3E 0x003E # GREATER-THAN SIGN
0x3F 0x003F # QUESTION MARK
0x40 0x0040 # COMMERCIAL AT
0x41 0x0041 # LATIN CAPITAL LETTER A
0x42 0x0042 # LATIN CAPITAL LETTER B
0x43 0x0043 # LATIN CAPITAL LETTER C
0x44 0x0044 # LATIN CAPITAL LETTER D
0x45 0x0045 # LATIN CAPITAL LETTER E
0x46 0x0046 # LATIN CAPITAL LETTER F
0x47 0x0047 # LATIN CAPITAL LETTER G
0x48 0x0048 # LATIN CAPITAL LETTER H
0x49 0x0049 # LATIN CAPITAL LETTER I
0x4A 0x004A # LATIN CAPITAL LETTER J
0x4B 0x004B # LATIN CAPITAL LETTER K
0x4C 0x004C # LATIN CAPITAL LETTER L
0x4D 0x004D # LATIN CAPITAL LETTER M
0x4E 0x004E # LATIN CAPITAL LETTER N
0x4F 0x004F # LATIN CAPITAL LETTER O
0x50 0x0050 # LATIN CAPITAL LETTER P
0x51 0x0051 # LATIN CAPITAL LETTER Q
0x52 0x0052 # LATIN CAPITAL LETTER R
0x53 0x0053 # LATIN CAPITAL LETTER S
0x54 0x0054 # LATIN CAPITAL LETTER T
0x55 0x0055 # LATIN CAPITAL LETTER U
0x56 0x0056 # LATIN CAPITAL LETTER V
0x57 0x0057 # LATIN CAPITAL LETTER W
0x58 0x0058 # LATIN CAPITAL LETTER X
0x59 0x0059 # LATIN CAPITAL LETTER Y
0x5A 0x005A # LATIN CAPITAL LETTER Z
0x5B 0x005B # LEFT SQUARE BRACKET
0x5C 0x00A5 # YEN SIGN
0x5D 0x005D # RIGHT SQUARE BRACKET
0x5E 0x005E # CIRCUMFLEX ACCENT
0x5F 0x005F # LOW LINE
0x60 0x0060 # GRAVE ACCENT
0x61 0x0061 # LATIN SMALL LETTER A
0x62 0x0062 # LATIN SMALL LETTER B
0x63 0x0063 # LATIN SMALL LETTER C
0x64 0x0064 # LATIN SMALL LETTER D
0x65 0x0065 # LATIN SMALL LETTER E
0x66 0x0066 # LATIN SMALL LETTER F
0x67 0x0067 # LATIN SMALL LETTER G
0x68 0x0068 # LATIN SMALL LETTER H
0x69 0x0069 # LATIN SMALL LETTER I
0x6A 0x006A # LATIN SMALL LETTER J
0x6B 0x006B # LATIN SMALL LETTER K
0x6C 0x006C # LATIN SMALL LETTER L
0x6D 0x006D # LATIN SMALL LETTER M
0x6E 0x006E # LATIN SMALL LETTER N
0x6F 0x006F # LATIN SMALL LETTER O
0x70 0x0070 # LATIN SMALL LETTER P
0x71 0x0071 # LATIN SMALL LETTER Q
0x72 0x0072 # LATIN SMALL LETTER R
0x73 0x0073 # LATIN SMALL LETTER S
0x74 0x0074 # LATIN SMALL LETTER T
0x75 0x0075 # LATIN SMALL LETTER U
0x76 0x0076 # LATIN SMALL LETTER V
0x77 0x0077 # LATIN SMALL LETTER W
0x78 0x0078 # LATIN SMALL LETTER X
0x79 0x0079 # LATIN SMALL LETTER Y
0x7A 0x007A # LATIN SMALL LETTER Z
0x7B 0x007B # LEFT CURLY BRACKET
0x7C 0x007C # VERTICAL LINE
0x7D 0x007D # RIGHT CURLY BRACKET
0x7E 0x203E # OVERLINE
0xA1 0xFF61 # HALFWIDTH IDEOGRAPHIC FULL STOP
0xA2 0xFF62 # HALFWIDTH LEFT CORNER BRACKET
0xA3 0xFF63 # HALFWIDTH RIGHT CORNER BRACKET
0xA4 0xFF64 # HALFWIDTH IDEOGRAPHIC COMMA
0xA5 0xFF65 # HALFWIDTH KATAKANA MIDDLE DOT
0xA6 0xFF66 # HALFWIDTH KATAKANA LETTER WO
0xA7 0xFF67 # HALFWIDTH KATAKANA LETTER SMALL A
0xA8 0xFF68 # HALFWIDTH KATAKANA LETTER SMALL I
0xA9 0xFF69 # HALFWIDTH KATAKANA LETTER SMALL U
0xAA 0xFF6A # HALFWIDTH KATAKANA LETTER SMALL E
0xAB 0xFF6B # HALFWIDTH KATAKANA LETTER SMALL O
0xAC 0xFF6C # HALFWIDTH KATAKANA LETTER SMALL YA
0xAD 0xFF6D # HALFWIDTH KATAKANA LETTER SMALL YU
0xAE 0xFF6E # HALFWIDTH KATAKANA LETTER SMALL YO
0xAF 0xFF6F # HALFWIDTH KATAKANA LETTER SMALL TU
0xB0 0xFF70 # HALFWIDTH KATAKANA-HIRAGANA PROLONGED SOUND MARK
0xB1 0xFF71 # HALFWIDTH KATAKANA LETTER A
0xB2 0xFF72 # HALFWIDTH KATAKANA LETTER I
0xB3 0xFF73 # HALFWIDTH KATAKANA LETTER U
0xB4 0xFF74 # HALFWIDTH KATAKANA LETTER E
0xB5 0xFF75 # HALFWIDTH KATAKANA LETTER O
0xB6 0xFF76 # HALFWIDTH KATAKANA LETTER KA
0xB7 0xFF77 # HALFWIDTH KATAKANA LETTER KI
0xB8 0xFF78 # HALFWIDTH KATAKANA LETTER KU
0xB9 0xFF79 # HALFWIDTH KATAKANA LETTER KE
0xBA 0xFF7A # HALFWIDTH KATAKANA LETTER KO
0xBB 0xFF7B # HALFWIDTH KATAKANA LETTER SA
0xBC 0xFF7C # HALFWIDTH KATAKANA LETTER SI
0xBD 0xFF7D # HALFWIDTH KATAKANA LETTER SU
0xBE 0xFF7E # HALFWIDTH KATAKANA LETTER SE
0xBF 0xFF7F # HALFWIDTH KATAKANA LETTER SO
0xC0 0xFF80 # HALFWIDTH KATAKANA LETTER TA
0xC1 0xFF81 # HALFWIDTH KATAKANA LETTER TI
0xC2 0xFF82 # HALFWIDTH KATAKANA LETTER TU
0xC3 0xFF83 # HALFWIDTH KATAKANA LETTER TE
0xC4 0xFF84 # HALFWIDTH KATAKANA LETTER TO
0xC5 0xFF85 # HALFWIDTH KATAKANA LETTER NA
0xC6 0xFF86 # HALFWIDTH KATAKANA LETTER NI
0xC7 0xFF87 # HALFWIDTH KATAKANA LETTER NU
0xC8 0xFF88 # HALFWIDTH KATAKANA LETTER NE
0xC9 0xFF89 # HALFWIDTH KATAKANA LETTER NO
0xCA 0xFF8A # HALFWIDTH KATAKANA LETTER HA
0xCB 0xFF8B # HALFWIDTH KATAKANA LETTER HI
0xCC 0xFF8C # HALFWIDTH KATAKANA LETTER HU
0xCD 0xFF8D # HALFWIDTH KATAKANA LETTER HE
0xCE 0xFF8E # HALFWIDTH KATAKANA LETTER HO
0xCF 0xFF8F # HALFWIDTH KATAKANA LETTER MA
0xD0 0xFF90 # HALFWIDTH KATAKANA LETTER MI
0xD1 0xFF91 # HALFWIDTH KATAKANA LETTER MU
0xD2 0xFF92 # HALFWIDTH KATAKANA LETTER ME
0xD3 0xFF93 # HALFWIDTH KATAKANA LETTER MO
0xD4 0xFF94 # HALFWIDTH KATAKANA LETTER YA
0xD5 0xFF95 # HALFWIDTH KATAKANA LETTER YU
0xD6 0xFF96 # HALFWIDTH KATAKANA LETTER YO
0xD7 0xFF97 # HALFWIDTH KATAKANA LETTER RA
0xD8 0xFF98 # HALFWIDTH KATAKANA LETTER RI
0xD9 0xFF99 # HALFWIDTH KATAKANA LETTER RU
0xDA 0xFF9A # HALFWIDTH KATAKANA LETTER RE
0xDB 0xFF9B # HALFWIDTH KATAKANA LETTER RO
0xDC 0xFF9C # HALFWIDTH KATAKANA LETTER WA
0xDD 0xFF9D # HALFWIDTH KATAKANA LETTER N
0xDE 0xFF9E # HALFWIDTH KATAKANA VOICED SOUND MARK
0xDF 0xFF9F # HALFWIDTH KATAKANA SEMI-VOICED SOUND MARK
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,286 @@
#
# $Id: VN5712-1.TXT,v 1.2 1999/08/23 18:34:17 mleisher Exp $
#
# Copyright 1999 Computing Research Labs, New Mexico State University
#
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the "Software"),
# to deal in the Software without restriction, including without limitation
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
# and/or sell copies of the Software, and to permit persons to whom the
# Software is furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
# THE COMPUTING RESEARCH LAB OR NEW MEXICO STATE UNIVERSITY BE LIABLE FOR ANY
# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT
# OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
# THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
#
# TCVN 5712-1 1993 Vietnamese. Typed in by hand from a document found on the
# net. This data is now available at a Web site.
#
# Mark Leisher <mleisher@crl.nmsu.edu>
# 06 March 1998
#
0x00 0x0000 # <control>
0x01 0x00DA # LATIN CAPITAL LETTER U WITH ACUTE
0x02 0x1EE4 # LATIN CAPITAL LETTER U WITH DOT BELOW
0x03 0x0003 # <control>
0x04 0x1EEA # LATIN CAPITAL LETTER U WITH HORN AND GRAVE
0x05 0x1EEC # LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE
0x06 0x1EEE # LATIN CAPITAL LETTER U WITH HORN AND TILDE
0x07 0x0007 # <control>
0x08 0x0008 # <control>
0x09 0x0009 # <control>
0x0A 0x000A # <control>
0x0B 0x000B # <control>
0x0C 0x000C # <control>
0x0D 0x000D # <control>
0x0E 0x000E # <control>
0x0F 0x000F # <control>
0x10 0x0010 # <control>
0x11 0x1EE8 # LATIN CAPITAL LETTER U WITH HORN AND ACUTE
0x12 0x1EF0 # LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW
0x13 0x1EF2 # LATIN CAPITAL LETTER Y WITH GRAVE
0x14 0x1EF6 # LATIN CAPITAL LETTER Y WITH HOOK ABOVE
0x15 0x1EF8 # LATIN CAPITAL LETTER Y WITH TILDE
0x16 0x00DD # LATIN CAPITAL LETTER Y WITH ACUTE
0x17 0x1EF4 # LATIN CAPITAL LETTER Y WITH DOT BELOW
0x18 0x0018 # <control>
0x19 0x0019 # <control>
0x1A 0x001A # <control>
0x1B 0x001B # <control>
0x1C 0x001C # <control>
0x1D 0x001D # <control>
0x1E 0x001E # <control>
0x1F 0x001F # <control>
0x20 0x0020 # SPACE
0x21 0x0021 # EXCLAMATION MARK
0x22 0x0022 # QUOTATION MARK
0x23 0x0023 # NUMBER SIGN
0x24 0x0024 # DOLLAR SIGN
0x25 0x0025 # PERCENT SIGN
0x26 0x0026 # AMPERSAND
0x27 0x0027 # APOSTROPHE
0x28 0x0028 # LEFT PARENTHESIS
0x29 0x0029 # RIGHT PARENTHESIS
0x2A 0x002A # ASTERISK
0x2B 0x002B # PLUS SIGN
0x2C 0x002C # COMMA
0x2D 0x002D # HYPHEN-MINUS
0x2E 0x002E # FULL STOP
0x2F 0x002F # SOLIDUS
0x30 0x0030 # DIGIT ZERO
0x31 0x0031 # DIGIT ONE
0x32 0x0032 # DIGIT TWO
0x33 0x0033 # DIGIT THREE
0x34 0x0034 # DIGIT FOUR
0x35 0x0035 # DIGIT FIVE
0x36 0x0036 # DIGIT SIX
0x37 0x0037 # DIGIT SEVEN
0x38 0x0038 # DIGIT EIGHT
0x39 0x0039 # DIGIT NINE
0x3A 0x003A # COLON
0x3B 0x003B # SEMICOLON
0x3C 0x003C # LESS-THAN SIGN
0x3D 0x003D # EQUALS SIGN
0x3E 0x003E # GREATER-THAN SIGN
0x3F 0x003F # QUESTION MARK
0x40 0x0040 # COMMERCIAL AT
0x41 0x0041 # LATIN CAPITAL LETTER A
0x42 0x0042 # LATIN CAPITAL LETTER B
0x43 0x0043 # LATIN CAPITAL LETTER C
0x44 0x0044 # LATIN CAPITAL LETTER D
0x45 0x0045 # LATIN CAPITAL LETTER E
0x46 0x0046 # LATIN CAPITAL LETTER F
0x47 0x0047 # LATIN CAPITAL LETTER G
0x48 0x0048 # LATIN CAPITAL LETTER H
0x49 0x0049 # LATIN CAPITAL LETTER I
0x4A 0x004A # LATIN CAPITAL LETTER J
0x4B 0x004B # LATIN CAPITAL LETTER K
0x4C 0x004C # LATIN CAPITAL LETTER L
0x4D 0x004D # LATIN CAPITAL LETTER M
0x4E 0x004E # LATIN CAPITAL LETTER N
0x4F 0x004F # LATIN CAPITAL LETTER O
0x50 0x0050 # LATIN CAPITAL LETTER P
0x51 0x0051 # LATIN CAPITAL LETTER Q
0x52 0x0052 # LATIN CAPITAL LETTER R
0x53 0x0053 # LATIN CAPITAL LETTER S
0x54 0x0054 # LATIN CAPITAL LETTER T
0x55 0x0055 # LATIN CAPITAL LETTER U
0x56 0x0056 # LATIN CAPITAL LETTER V
0x57 0x0057 # LATIN CAPITAL LETTER W
0x58 0x0058 # LATIN CAPITAL LETTER X
0x59 0x0059 # LATIN CAPITAL LETTER Y
0x5A 0x005A # LATIN CAPITAL LETTER Z
0x5B 0x005B # LEFT SQUARE BRACKET
0x5C 0x005C # REVERSE SOLIDUS
0x5D 0x005D # RIGHT SQUARE BRACKET
0x5E 0x005E # CIRCUMFLEX ACCENT
0x5F 0x005F # LOW LINE
0x60 0x0060 # GRAVE ACCENT
0x61 0x0061 # LATIN SMALL LETTER A
0x62 0x0062 # LATIN SMALL LETTER B
0x63 0x0063 # LATIN SMALL LETTER C
0x64 0x0064 # LATIN SMALL LETTER D
0x65 0x0065 # LATIN SMALL LETTER E
0x66 0x0066 # LATIN SMALL LETTER F
0x67 0x0067 # LATIN SMALL LETTER G
0x68 0x0068 # LATIN SMALL LETTER H
0x69 0x0069 # LATIN SMALL LETTER I
0x6A 0x006A # LATIN SMALL LETTER J
0x6B 0x006B # LATIN SMALL LETTER K
0x6C 0x006C # LATIN SMALL LETTER L
0x6D 0x006D # LATIN SMALL LETTER M
0x6E 0x006E # LATIN SMALL LETTER N
0x6F 0x006F # LATIN SMALL LETTER O
0x70 0x0070 # LATIN SMALL LETTER P
0x71 0x0071 # LATIN SMALL LETTER Q
0x72 0x0072 # LATIN SMALL LETTER R
0x73 0x0073 # LATIN SMALL LETTER S
0x74 0x0074 # LATIN SMALL LETTER T
0x75 0x0075 # LATIN SMALL LETTER U
0x76 0x0076 # LATIN SMALL LETTER V
0x77 0x0077 # LATIN SMALL LETTER W
0x78 0x0078 # LATIN SMALL LETTER X
0x79 0x0079 # LATIN SMALL LETTER Y
0x7A 0x007A # LATIN SMALL LETTER Z
0x7B 0x007B # LEFT CURLY BRACKET
0x7C 0x007C # VERTICAL LINE
0x7D 0x007D # RIGHT CURLY BRACKET
0x7E 0x007E # TILDE
0x7F 0x007F # <control>
0x80 0x00C0 # LATIN CAPITAL LETTER A WITH GRAVE
0x81 0x1EA2 # LATIN CAPITAL LETTER A WITH HOOK ABOVE
0x82 0x00C3 # LATIN CAPITAL LETTER A WITH TILDE
0x83 0x00C1 # LATIN CAPITAL LETTER A WITH ACUTE
0x84 0x1EA0 # LATIN CAPITAL LETTER A WITH DOT BELOW
0x85 0x1EB6 # LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW
0x86 0x1EAC # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW
0x87 0x00C8 # LATIN CAPITAL LETTER E WITH GRAVE
0x88 0x1EBA # LATIN CAPITAL LETTER E WITH HOOK ABOVE
0x89 0x1EBC # LATIN CAPITAL LETTER E WITH TILDE
0x8A 0x00C9 # LATIN CAPITAL LETTER E WITH ACUTE
0x8B 0x1EB8 # LATIN CAPITAL LETTER E WITH DOT BELOW
0x8C 0x1EC6 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
0x8D 0x00CC # LATIN CAPITAL LETTER I WITH GRAVE
0x8E 0x1EC8 # LATIN CAPITAL LETTER I WITH HOOK ABOVE
0x8F 0x0128 # LATIN CAPITAL LETTER I WITH TILDE
0x90 0x00CD # LATIN CAPITAL LETTER I WITH ACUTE
0x91 0x1ECA # LATIN CAPITAL LETTER I WITH DOT BELOW
0x92 0x00D2 # LATIN CAPITAL LETTER O WITH GRAVE
0x93 0x1ECE # LATIN CAPITAL LETTER O WITH HOOK ABOVE
0x94 0x00D5 # LATIN CAPITAL LETTER O WITH TILDE
0x95 0x00D3 # LATIN CAPITAL LETTER O WITH ACUTE
0x96 0x1ECC # LATIN CAPITAL LETTER O WITH DOT BELOW
0x97 0x1ED8 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
0x98 0x1EDC # LATIN CAPITAL LETTER O WITH HORN AND GRAVE
0x99 0x1EDE # LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE
0x9A 0x1EE0 # LATIN CAPITAL LETTER O WITH HORN AND TILDE
0x9B 0x1EDA # LATIN CAPITAL LETTER O WITH HORN AND ACUTE
0x9C 0x1EE2 # LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW
0x9D 0x00D9 # LATIN CAPITAL LETTER U WITH GRAVE
0x9E 0x1EE6 # LATIN CAPITAL LETTER U WITH HOOK ABOVE
0x9F 0x0168 # LATIN CAPITAL LETTER U WITH TILDE
0xA0 0x00A0 # NO-BREAK SPACE
0xA1 0x0102 # LATIN CAPITAL LETTER A WITH BREVE
0xA2 0x00C2 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
0xA3 0x00CA # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
0xA4 0x00D4 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
0xA5 0x01A0 # LATIN CAPITAL LETTER O WITH HORN
0xA6 0x01AF # LATIN CAPITAL LETTER U WITH HORN
0xA7 0x0110 # LATIN CAPITAL LETTER D WITH STROKE
0xA8 0x0103 # LATIN SMALL LETTER A WITH BREVE
0xA9 0x00E2 # LATIN SMALL LETTER A WITH CIRCUMFLEX
0xAA 0x00EA # LATIN SMALL LETTER E WITH CIRCUMFLEX
0xAB 0x00F4 # LATIN SMALL LETTER O WITH CIRCUMFLEX
0xAC 0x01A1 # LATIN SMALL LETTER O WITH HORN
0xAD 0x01B0 # LATIN SMALL LETTER U WITH HORN
0xAE 0x0111 # LATIN SMALL LETTER D WITH STROKE
0xAF 0x1EB0 # LATIN CAPITAL LETTER A WITH BREVE AND GRAVE
0xB0 0x0300 # COMBINING GRAVE ACCENT
0xB1 0x0309 # COMBINING HOOK ABOVE
0xB2 0x0303 # COMBINING TILDE
0xB3 0x0301 # COMBINING ACUTE ACCENT
0xB4 0x0323 # COMBINING DOT BELOW
0xB5 0x00E0 # LATIN SMALL LETTER A WITH GRAVE
0xB6 0x1EA3 # LATIN SMALL LETTER A WITH HOOK ABOVE
0xB7 0x00E3 # LATIN SMALL LETTER A WITH TILDE
0xB8 0x00E1 # LATIN SMALL LETTER A WITH ACUTE
0xB9 0x1EA1 # LATIN SMALL LETTER A WITH DOT BELOW
0xBA 0x1EB2 # LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE
0xBB 0x1EB1 # LATIN SMALL LETTER A WITH BREVE AND GRAVE
0xBC 0x1EB3 # LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE
0xBD 0x1EB5 # LATIN SMALL LETTER A WITH BREVE AND TILDE
0xBE 0x1EAF # LATIN SMALL LETTER A WITH BREVE AND ACUTE
0xBF 0x1EB4 # LATIN CAPITAL LETTER A WITH BREVE AND TILDE
0xC0 0x1EAE # LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
0xC1 0x1EA6 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE
0xC2 0x1EA8 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
0xC3 0x1EAA # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE
0xC4 0x1EA4 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE
0xC5 0x1EC0 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
0xC6 0x1EB7 # LATIN SMALL LETTER A WITH BREVE AND DOT BELOW
0xC7 0x1EA7 # LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE
0xC8 0x1EA9 # LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
0xC9 0x1EAB # LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE
0xCA 0x1EA5 # LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE
0xCB 0x1EAD # LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW
0xCC 0x00E8 # LATIN SMALL LETTER E WITH GRAVE
0xCD 0x1EC2 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
0xCE 0x1EBB # LATIN SMALL LETTER E WITH HOOK ABOVE
0xCF 0x1EBD # LATIN SMALL LETTER E WITH TILDE
0xD0 0x00E9 # LATIN SMALL LETTER E WITH ACUTE
0xD1 0x1EB9 # LATIN SMALL LETTER E WITH DOT BELOW
0xD2 0x1EC1 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
0xD3 0x1EC3 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
0xD4 0x1EC5 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
0xD5 0x1EBF # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
0xD6 0x1EC7 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
0xD7 0x00EC # LATIN SMALL LETTER I WITH GRAVE
0xD8 0x1EC9 # LATIN SMALL LETTER I WITH HOOK ABOVE
0xD9 0x1EC4 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
0xDA 0x1EBE # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
0xDB 0x1ED2 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
0xDC 0x0129 # LATIN SMALL LETTER I WITH TILDE
0xDD 0x00ED # LATIN SMALL LETTER I WITH ACUTE
0xDE 0x1ECB # LATIN SMALL LETTER I WITH DOT BELOW
0xDF 0x00F2 # LATIN SMALL LETTER O WITH GRAVE
0xE0 0x1ED4 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
0xE1 0x1ECF # LATIN SMALL LETTER O WITH HOOK ABOVE
0xE2 0x00F5 # LATIN SMALL LETTER O WITH TILDE
0xE3 0x00F3 # LATIN SMALL LETTER O WITH ACUTE
0xE4 0x1ECD # LATIN SMALL LETTER O WITH DOT BELOW
0xE5 0x1ED3 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
0xE6 0x1ED5 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
0xE7 0x1ED7 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
0xE8 0x1ED1 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
0xE9 0x1ED9 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
0xEA 0x1EDD # LATIN SMALL LETTER O WITH HORN AND GRAVE
0xEB 0x1EDF # LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE
0xEC 0x1EE1 # LATIN SMALL LETTER O WITH HORN AND TILDE
0xED 0x1EDB # LATIN SMALL LETTER O WITH HORN AND ACUTE
0xEE 0x1EE3 # LATIN SMALL LETTER O WITH HORN AND DOT BELOW
0xEF 0x00F9 # LATIN SMALL LETTER U WITH GRAVE
0xF0 0x1ED6 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
0xF1 0x1EE7 # LATIN SMALL LETTER U WITH HOOK ABOVE
0xF2 0x0169 # LATIN SMALL LETTER U WITH TILDE
0xF3 0x00FA # LATIN SMALL LETTER U WITH ACUTE
0xF4 0x1EE5 # LATIN SMALL LETTER U WITH DOT BELOW
0xF5 0x1EEB # LATIN SMALL LETTER U WITH HORN AND GRAVE
0xF6 0x1EED # LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE
0xF7 0x1EEF # LATIN SMALL LETTER U WITH HORN AND TILDE
0xF8 0x1EE9 # LATIN SMALL LETTER U WITH HORN AND ACUTE
0xF9 0x1EF1 # LATIN SMALL LETTER U WITH HORN AND DOT BELOW
0xFA 0x1EF3 # LATIN SMALL LETTER Y WITH GRAVE
0xFB 0x1EF7 # LATIN SMALL LETTER Y WITH HOOK ABOVE
0xFC 0x1EF9 # LATIN SMALL LETTER Y WITH TILDE
0xFD 0x00FD # LATIN SMALL LETTER Y WITH ACUTE
0xFE 0x1EF5 # LATIN SMALL LETTER Y WITH DOT BELOW
0xFF 0x1ED0 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
@@ -0,0 +1,286 @@
#
# $Id: VN5712-2.TXT,v 1.2 1999/08/23 18:34:17 mleisher Exp $
#
# Copyright 1999 Computing Research Labs, New Mexico State University
#
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the "Software"),
# to deal in the Software without restriction, including without limitation
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
# and/or sell copies of the Software, and to permit persons to whom the
# Software is furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
# THE COMPUTING RESEARCH LAB OR NEW MEXICO STATE UNIVERSITY BE LIABLE FOR ANY
# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT
# OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
# THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
#
# TCVN 5712-2 1993 Vietnamese. Typed in by hand from a document found on the
# net. I believe this data is now available at a Web site.
#
# Mark Leisher <mleisher@crl.nmsu.edu>
# 06 March 1998
#
0x00 0x0000 # <control>
0x01 0x00DA # LATIN CAPITAL LETTER U WITH ACUTE
0x02 0x1EE4 # LATIN CAPITAL LETTER U WITH DOT BELOW
0x03 0x0003 # <control>
0x04 0x1EEA # LATIN CAPITAL LETTER U WITH HORN AND GRAVE
0x05 0x1EEC # LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE
0x06 0x1EEE # LATIN CAPITAL LETTER U WITH HORN AND TILDE
0x07 0x0007 # <control>
0x08 0x0008 # <control>
0x09 0x0009 # <control>
0x0A 0x000A # <control>
0x0B 0x000B # <control>
0x0C 0x000C # <control>
0x0D 0x000D # <control>
0x0E 0x000E # <control>
0x0F 0x000F # <control>
0x10 0x0010 # <control>
0x11 0x1EE8 # LATIN CAPITAL LETTER U WITH HORN AND ACUTE
0x12 0x1EF0 # LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW
0x13 0x1EF2 # LATIN CAPITAL LETTER Y WITH GRAVE
0x14 0x1EF6 # LATIN CAPITAL LETTER Y WITH HOOK ABOVE
0x15 0x1EF8 # LATIN CAPITAL LETTER Y WITH TILDE
0x16 0x00DD # LATIN CAPITAL LETTER Y WITH ACUTE
0x17 0x1EF4 # LATIN CAPITAL LETTER Y WITH DOT BELOW
0x18 0x0018 # <control>
0x19 0x0019 # <control>
0x1A 0x001A # <control>
0x1B 0x001B # <control>
0x1C 0x001C # <control>
0x1D 0x001D # <control>
0x1E 0x001E # <control>
0x1F 0x001F # <control>
0x20 0x0020 # SPACE
0x21 0x0021 # EXCLAMATION MARK
0x22 0x0022 # QUOTATION MARK
0x23 0x0023 # NUMBER SIGN
0x24 0x0024 # DOLLAR SIGN
0x25 0x0025 # PERCENT SIGN
0x26 0x0026 # AMPERSAND
0x27 0x0027 # APOSTROPHE
0x28 0x0028 # LEFT PARENTHESIS
0x29 0x0029 # RIGHT PARENTHESIS
0x2A 0x002A # ASTERISK
0x2B 0x002B # PLUS SIGN
0x2C 0x002C # COMMA
0x2D 0x002D # HYPHEN-MINUS
0x2E 0x002E # FULL STOP
0x2F 0x002F # SOLIDUS
0x30 0x0030 # DIGIT ZERO
0x31 0x0031 # DIGIT ONE
0x32 0x0032 # DIGIT TWO
0x33 0x0033 # DIGIT THREE
0x34 0x0034 # DIGIT FOUR
0x35 0x0035 # DIGIT FIVE
0x36 0x0036 # DIGIT SIX
0x37 0x0037 # DIGIT SEVEN
0x38 0x0038 # DIGIT EIGHT
0x39 0x0039 # DIGIT NINE
0x3A 0x003A # COLON
0x3B 0x003B # SEMICOLON
0x3C 0x003C # LESS-THAN SIGN
0x3D 0x003D # EQUALS SIGN
0x3E 0x003E # GREATER-THAN SIGN
0x3F 0x003F # QUESTION MARK
0x40 0x0040 # COMMERCIAL AT
0x41 0x0041 # LATIN CAPITAL LETTER A
0x42 0x0042 # LATIN CAPITAL LETTER B
0x43 0x0043 # LATIN CAPITAL LETTER C
0x44 0x0044 # LATIN CAPITAL LETTER D
0x45 0x0045 # LATIN CAPITAL LETTER E
0x46 0x0046 # LATIN CAPITAL LETTER F
0x47 0x0047 # LATIN CAPITAL LETTER G
0x48 0x0048 # LATIN CAPITAL LETTER H
0x49 0x0049 # LATIN CAPITAL LETTER I
0x4A 0x004A # LATIN CAPITAL LETTER J
0x4B 0x004B # LATIN CAPITAL LETTER K
0x4C 0x004C # LATIN CAPITAL LETTER L
0x4D 0x004D # LATIN CAPITAL LETTER M
0x4E 0x004E # LATIN CAPITAL LETTER N
0x4F 0x004F # LATIN CAPITAL LETTER O
0x50 0x0050 # LATIN CAPITAL LETTER P
0x51 0x0051 # LATIN CAPITAL LETTER Q
0x52 0x0052 # LATIN CAPITAL LETTER R
0x53 0x0053 # LATIN CAPITAL LETTER S
0x54 0x0054 # LATIN CAPITAL LETTER T
0x55 0x0055 # LATIN CAPITAL LETTER U
0x56 0x0056 # LATIN CAPITAL LETTER V
0x57 0x0057 # LATIN CAPITAL LETTER W
0x58 0x0058 # LATIN CAPITAL LETTER X
0x59 0x0059 # LATIN CAPITAL LETTER Y
0x5A 0x005A # LATIN CAPITAL LETTER Z
0x5B 0x005B # LEFT SQUARE BRACKET
0x5C 0x005C # REVERSE SOLIDUS
0x5D 0x005D # RIGHT SQUARE BRACKET
0x5E 0x005E # CIRCUMFLEX ACCENT
0x5F 0x005F # LOW LINE
0x60 0x0060 # GRAVE ACCENT
0x61 0x0061 # LATIN SMALL LETTER A
0x62 0x0062 # LATIN SMALL LETTER B
0x63 0x0063 # LATIN SMALL LETTER C
0x64 0x0064 # LATIN SMALL LETTER D
0x65 0x0065 # LATIN SMALL LETTER E
0x66 0x0066 # LATIN SMALL LETTER F
0x67 0x0067 # LATIN SMALL LETTER G
0x68 0x0068 # LATIN SMALL LETTER H
0x69 0x0069 # LATIN SMALL LETTER I
0x6A 0x006A # LATIN SMALL LETTER J
0x6B 0x006B # LATIN SMALL LETTER K
0x6C 0x006C # LATIN SMALL LETTER L
0x6D 0x006D # LATIN SMALL LETTER M
0x6E 0x006E # LATIN SMALL LETTER N
0x6F 0x006F # LATIN SMALL LETTER O
0x70 0x0070 # LATIN SMALL LETTER P
0x71 0x0071 # LATIN SMALL LETTER Q
0x72 0x0072 # LATIN SMALL LETTER R
0x73 0x0073 # LATIN SMALL LETTER S
0x74 0x0074 # LATIN SMALL LETTER T
0x75 0x0075 # LATIN SMALL LETTER U
0x76 0x0076 # LATIN SMALL LETTER V
0x77 0x0077 # LATIN SMALL LETTER W
0x78 0x0078 # LATIN SMALL LETTER X
0x79 0x0079 # LATIN SMALL LETTER Y
0x7A 0x007A # LATIN SMALL LETTER Z
0x7B 0x007B # LEFT CURLY BRACKET
0x7C 0x007C # VERTICAL LINE
0x7D 0x007D # RIGHT CURLY BRACKET
0x7E 0x007E # TILDE
0x7F 0x007F # <control>
0x80 0x0080 # <control>
0x81 0x0081 # <control>
0x82 0x0082 # <control>
0x83 0x0083 # <control>
0x84 0x0084 # <control>
0x85 0x0085 # <control>
0x86 0x0086 # <control>
0x87 0x0087 # <control>
0x88 0x0088 # <control>
0x89 0x0089 # <control>
0x8A 0x008A # <control>
0x8B 0x008B # <control>
0x8C 0x008C # <control>
0x8D 0x008D # <control>
0x8E 0x008E # <control>
0x8F 0x008F # <control>
0x90 0x0090 # <control>
0x91 0x0091 # <control>
0x92 0x0092 # <control>
0x93 0x0093 # <control>
0x94 0x0094 # <control>
0x95 0x0095 # <control>
0x96 0x0096 # <control>
0x97 0x0097 # <control>
0x98 0x0098 # <control>
0x99 0x0099 # <control>
0x9A 0x009A # <control>
0x9B 0x009B # <control>
0x9C 0x009C # <control>
0x9D 0x009D # <control>
0x9E 0x009E # <control>
0x9F 0x009F # <control>
0xA0 0x00A0 # NO-BREAK SPACE
0xA1 0x0102 # LATIN CAPITAL LETTER A WITH BREVE
0xA2 0x00C2 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
0xA3 0x00CA # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
0xA4 0x00D4 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
0xA5 0x01A0 # LATIN CAPITAL LETTER O WITH HORN
0xA6 0x01AF # LATIN CAPITAL LETTER U WITH HORN
0xA7 0x0110 # LATIN CAPITAL LETTER D WITH STROKE
0xA8 0x0103 # LATIN SMALL LETTER A WITH BREVE
0xA9 0x00E2 # LATIN SMALL LETTER A WITH CIRCUMFLEX
0xAA 0x00EA # LATIN SMALL LETTER E WITH CIRCUMFLEX
0xAB 0x00F4 # LATIN SMALL LETTER O WITH CIRCUMFLEX
0xAC 0x01A1 # LATIN SMALL LETTER O WITH HORN
0xAD 0x01B0 # LATIN SMALL LETTER U WITH HORN
0xAE 0x0111 # LATIN SMALL LETTER D WITH STROKE
0xAF 0x1EB0 # LATIN CAPITAL LETTER A WITH BREVE AND GRAVE
0xB0 0x0300 # COMBINING GRAVE ACCENT
0xB1 0x0309 # COMBINING HOOK ABOVE
0xB2 0x0303 # COMBINING TILDE
0xB3 0x0301 # COMBINING ACUTE ACCENT
0xB4 0x0323 # COMBINING DOT BELOW
0xB5 0x00E0 # LATIN SMALL LETTER A WITH GRAVE
0xB6 0x1EA3 # LATIN SMALL LETTER A WITH HOOK ABOVE
0xB7 0x00E3 # LATIN SMALL LETTER A WITH TILDE
0xB8 0x00E1 # LATIN SMALL LETTER A WITH ACUTE
0xB9 0x1EA1 # LATIN SMALL LETTER A WITH DOT BELOW
0xBA 0x1EB2 # LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE
0xBB 0x1EB1 # LATIN SMALL LETTER A WITH BREVE AND GRAVE
0xBC 0x1EB3 # LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE
0xBD 0x1EB5 # LATIN SMALL LETTER A WITH BREVE AND TILDE
0xBE 0x1EAF # LATIN SMALL LETTER A WITH BREVE AND ACUTE
0xBF 0x1EB4 # LATIN CAPITAL LETTER A WITH BREVE AND TILDE
0xC0 0x1EAE # LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
0xC1 0x1EA6 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE
0xC2 0x1EA8 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
0xC3 0x1EAA # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE
0xC4 0x1EA4 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE
0xC5 0x1EC0 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
0xC6 0x1EB7 # LATIN SMALL LETTER A WITH BREVE AND DOT BELOW
0xC7 0x1EA7 # LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE
0xC8 0x1EA9 # LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
0xC9 0x1EAB # LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE
0xCA 0x1EA5 # LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE
0xCB 0x1EAD # LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW
0xCC 0x00E8 # LATIN SMALL LETTER E WITH GRAVE
0xCD 0x1EC2 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
0xCE 0x1EBB # LATIN SMALL LETTER E WITH HOOK ABOVE
0xCF 0x1EBD # LATIN SMALL LETTER E WITH TILDE
0xD0 0x00E9 # LATIN SMALL LETTER E WITH ACUTE
0xD1 0x1EB9 # LATIN SMALL LETTER E WITH DOT BELOW
0xD2 0x1EC1 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
0xD3 0x1EC3 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
0xD4 0x1EC5 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
0xD5 0x1EBF # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
0xD6 0x1EC7 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
0xD7 0x00EC # LATIN SMALL LETTER I WITH GRAVE
0xD8 0x1EC9 # LATIN SMALL LETTER I WITH HOOK ABOVE
0xD9 0x1EC4 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
0xDA 0x1EBE # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
0xDB 0x1ED2 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
0xDC 0x0129 # LATIN SMALL LETTER I WITH TILDE
0xDD 0x00ED # LATIN SMALL LETTER I WITH ACUTE
0xDE 0x1ECB # LATIN SMALL LETTER I WITH DOT BELOW
0xDF 0x00F2 # LATIN SMALL LETTER O WITH GRAVE
0xE0 0x1ED4 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
0xE1 0x1ECF # LATIN SMALL LETTER O WITH HOOK ABOVE
0xE2 0x00F5 # LATIN SMALL LETTER O WITH TILDE
0xE3 0x00F3 # LATIN SMALL LETTER O WITH ACUTE
0xE4 0x1ECD # LATIN SMALL LETTER O WITH DOT BELOW
0xE5 0x1ED3 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
0xE6 0x1ED5 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
0xE7 0x1ED7 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
0xE8 0x1ED1 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
0xE9 0x1ED9 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
0xEA 0x1EDD # LATIN SMALL LETTER O WITH HORN AND GRAVE
0xEB 0x1EDF # LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE
0xEC 0x1EE1 # LATIN SMALL LETTER O WITH HORN AND TILDE
0xED 0x1EDB # LATIN SMALL LETTER O WITH HORN AND ACUTE
0xEE 0x1EE3 # LATIN SMALL LETTER O WITH HORN AND DOT BELOW
0xEF 0x00F9 # LATIN SMALL LETTER U WITH GRAVE
0xF0 0x1ED6 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
0xF1 0x1EE7 # LATIN SMALL LETTER U WITH HOOK ABOVE
0xF2 0x0169 # LATIN SMALL LETTER U WITH TILDE
0xF3 0x00FA # LATIN SMALL LETTER U WITH ACUTE
0xF4 0x1EE5 # LATIN SMALL LETTER U WITH DOT BELOW
0xF5 0x1EEB # LATIN SMALL LETTER U WITH HORN AND GRAVE
0xF6 0x1EED # LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE
0xF7 0x1EEF # LATIN SMALL LETTER U WITH HORN AND TILDE
0xF8 0x1EE9 # LATIN SMALL LETTER U WITH HORN AND ACUTE
0xF9 0x1EF1 # LATIN SMALL LETTER U WITH HORN AND DOT BELOW
0xFA 0x1EF3 # LATIN SMALL LETTER Y WITH GRAVE
0xFB 0x1EF7 # LATIN SMALL LETTER Y WITH HOOK ABOVE
0xFC 0x1EF9 # LATIN SMALL LETTER Y WITH TILDE
0xFD 0x00FD # LATIN SMALL LETTER Y WITH ACUTE
0xFE 0x1EF5 # LATIN SMALL LETTER Y WITH DOT BELOW
0xFF 0x1ED0 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
@@ -0,0 +1,286 @@
#
# $Id: TIS620.TXT,v 1.2 1999/08/23 18:34:16 mleisher Exp $
#
# Copyright 1999 Computing Research Labs, New Mexico State University
#
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the "Software"),
# to deal in the Software without restriction, including without limitation
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
# and/or sell copies of the Software, and to permit persons to whom the
# Software is furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
# THE COMPUTING RESEARCH LAB OR NEW MEXICO STATE UNIVERSITY BE LIABLE FOR ANY
# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT
# OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
# THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
#
# TCCII 2533 1009 / TIS 620 Thai. Generated from the table in the "tcs"
# package.
#
# Mark Leisher <mleisher@crl.nmsu.edu>
# 06 March 1998
#
0x00 0x0000 # <control>
0x01 0x0001 # <control>
0x02 0x0002 # <control>
0x03 0x0003 # <control>
0x04 0x0004 # <control>
0x05 0x0005 # <control>
0x06 0x0006 # <control>
0x07 0x0007 # <control>
0x08 0x0008 # <control>
0x09 0x0009 # <control>
0x0A 0x000A # <control>
0x0B 0x000B # <control>
0x0C 0x000C # <control>
0x0D 0x000D # <control>
0x0E 0x000E # <control>
0x0F 0x000F # <control>
0x10 0x0010 # <control>
0x11 0x0011 # <control>
0x12 0x0012 # <control>
0x13 0x0013 # <control>
0x14 0x0014 # <control>
0x15 0x0015 # <control>
0x16 0x0016 # <control>
0x17 0x0017 # <control>
0x18 0x0018 # <control>
0x19 0x0019 # <control>
0x1A 0x001A # <control>
0x1B 0x001B # <control>
0x1C 0x001C # <control>
0x1D 0x001D # <control>
0x1E 0x001E # <control>
0x1F 0x001F # <control>
0x20 0x0020 # SPACE
0x21 0x0021 # EXCLAMATION MARK
0x22 0x0022 # QUOTATION MARK
0x23 0x0023 # NUMBER SIGN
0x24 0x0024 # DOLLAR SIGN
0x25 0x0025 # PERCENT SIGN
0x26 0x0026 # AMPERSAND
0x27 0x0027 # APOSTROPHE
0x28 0x0028 # LEFT PARENTHESIS
0x29 0x0029 # RIGHT PARENTHESIS
0x2A 0x002A # ASTERISK
0x2B 0x002B # PLUS SIGN
0x2C 0x002C # COMMA
0x2D 0x002D # HYPHEN-MINUS
0x2E 0x002E # FULL STOP
0x2F 0x002F # SOLIDUS
0x30 0x0030 # DIGIT ZERO
0x31 0x0031 # DIGIT ONE
0x32 0x0032 # DIGIT TWO
0x33 0x0033 # DIGIT THREE
0x34 0x0034 # DIGIT FOUR
0x35 0x0035 # DIGIT FIVE
0x36 0x0036 # DIGIT SIX
0x37 0x0037 # DIGIT SEVEN
0x38 0x0038 # DIGIT EIGHT
0x39 0x0039 # DIGIT NINE
0x3A 0x003A # COLON
0x3B 0x003B # SEMICOLON
0x3C 0x003C # LESS-THAN SIGN
0x3D 0x003D # EQUALS SIGN
0x3E 0x003E # GREATER-THAN SIGN
0x3F 0x003F # QUESTION MARK
0x40 0x0040 # COMMERCIAL AT
0x41 0x0041 # LATIN CAPITAL LETTER A
0x42 0x0042 # LATIN CAPITAL LETTER B
0x43 0x0043 # LATIN CAPITAL LETTER C
0x44 0x0044 # LATIN CAPITAL LETTER D
0x45 0x0045 # LATIN CAPITAL LETTER E
0x46 0x0046 # LATIN CAPITAL LETTER F
0x47 0x0047 # LATIN CAPITAL LETTER G
0x48 0x0048 # LATIN CAPITAL LETTER H
0x49 0x0049 # LATIN CAPITAL LETTER I
0x4A 0x004A # LATIN CAPITAL LETTER J
0x4B 0x004B # LATIN CAPITAL LETTER K
0x4C 0x004C # LATIN CAPITAL LETTER L
0x4D 0x004D # LATIN CAPITAL LETTER M
0x4E 0x004E # LATIN CAPITAL LETTER N
0x4F 0x004F # LATIN CAPITAL LETTER O
0x50 0x0050 # LATIN CAPITAL LETTER P
0x51 0x0051 # LATIN CAPITAL LETTER Q
0x52 0x0052 # LATIN CAPITAL LETTER R
0x53 0x0053 # LATIN CAPITAL LETTER S
0x54 0x0054 # LATIN CAPITAL LETTER T
0x55 0x0055 # LATIN CAPITAL LETTER U
0x56 0x0056 # LATIN CAPITAL LETTER V
0x57 0x0057 # LATIN CAPITAL LETTER W
0x58 0x0058 # LATIN CAPITAL LETTER X
0x59 0x0059 # LATIN CAPITAL LETTER Y
0x5A 0x005A # LATIN CAPITAL LETTER Z
0x5B 0x005B # LEFT SQUARE BRACKET
0x5C 0x005C # REVERSE SOLIDUS
0x5D 0x005D # RIGHT SQUARE BRACKET
0x5E 0x005E # CIRCUMFLEX ACCENT
0x5F 0x005F # LOW LINE
0x60 0x0060 # GRAVE ACCENT
0x61 0x0061 # LATIN SMALL LETTER A
0x62 0x0062 # LATIN SMALL LETTER B
0x63 0x0063 # LATIN SMALL LETTER C
0x64 0x0064 # LATIN SMALL LETTER D
0x65 0x0065 # LATIN SMALL LETTER E
0x66 0x0066 # LATIN SMALL LETTER F
0x67 0x0067 # LATIN SMALL LETTER G
0x68 0x0068 # LATIN SMALL LETTER H
0x69 0x0069 # LATIN SMALL LETTER I
0x6A 0x006A # LATIN SMALL LETTER J
0x6B 0x006B # LATIN SMALL LETTER K
0x6C 0x006C # LATIN SMALL LETTER L
0x6D 0x006D # LATIN SMALL LETTER M
0x6E 0x006E # LATIN SMALL LETTER N
0x6F 0x006F # LATIN SMALL LETTER O
0x70 0x0070 # LATIN SMALL LETTER P
0x71 0x0071 # LATIN SMALL LETTER Q
0x72 0x0072 # LATIN SMALL LETTER R
0x73 0x0073 # LATIN SMALL LETTER S
0x74 0x0074 # LATIN SMALL LETTER T
0x75 0x0075 # LATIN SMALL LETTER U
0x76 0x0076 # LATIN SMALL LETTER V
0x77 0x0077 # LATIN SMALL LETTER W
0x78 0x0078 # LATIN SMALL LETTER X
0x79 0x0079 # LATIN SMALL LETTER Y
0x7A 0x007A # LATIN SMALL LETTER Z
0x7B 0x007B # LEFT CURLY BRACKET
0x7C 0x007C # VERTICAL LINE
0x7D 0x007D # RIGHT CURLY BRACKET
0x7E 0x007E # TILDE
0x7F 0x007F # <control>
0x80 0x0080 # <control>
0x81 0x0081 # <control>
0x82 0x0082 # <control>
0x83 0x0083 # <control>
0x84 0x0084 # <control>
0x85 0x0085 # <control>
0x86 0x0086 # <control>
0x87 0x0087 # <control>
0x88 0x0088 # <control>
0x89 0x0089 # <control>
0x8A 0x008A # <control>
0x8B 0x008B # <control>
0x8C 0x008C # <control>
0x8D 0x008D # <control>
0x8E 0x008E # <control>
0x8F 0x008F # <control>
0x90 0x0090 # <control>
0x91 0x0091 # <control>
0x92 0x0092 # <control>
0x93 0x0093 # <control>
0x94 0x0094 # <control>
0x95 0x0095 # <control>
0x96 0x0096 # <control>
0x97 0x0097 # <control>
0x98 0x0098 # <control>
0x99 0x0099 # <control>
0x9A 0x009A # <control>
0x9B 0x009B # <control>
0x9C 0x009C # <control>
0x9D 0x009D # <control>
0x9E 0x009E # <control>
0x9F 0x009F # <control>
0xA0 0xFFFD # REPLACEMENT CHARACTER
0xA1 0x0E01 # THAI CHARACTER KO KAI
0xA2 0x0E02 # THAI CHARACTER KHO KHAI
0xA3 0x0E03 # THAI CHARACTER KHO KHUAT
0xA4 0x0E04 # THAI CHARACTER KHO KHWAI
0xA5 0x0E05 # THAI CHARACTER KHO KHON
0xA6 0x0E06 # THAI CHARACTER KHO RAKHANG
0xA7 0x0E07 # THAI CHARACTER NGO NGU
0xA8 0x0E08 # THAI CHARACTER CHO CHAN
0xA9 0x0E09 # THAI CHARACTER CHO CHING
0xAA 0x0E0A # THAI CHARACTER CHO CHANG
0xAB 0x0E0B # THAI CHARACTER SO SO
0xAC 0x0E0C # THAI CHARACTER CHO CHOE
0xAD 0x0E0D # THAI CHARACTER YO YING
0xAE 0x0E0E # THAI CHARACTER DO CHADA
0xAF 0x0E0F # THAI CHARACTER TO PATAK
0xB0 0x0E10 # THAI CHARACTER THO THAN
0xB1 0x0E11 # THAI CHARACTER THO NANGMONTHO
0xB2 0x0E12 # THAI CHARACTER THO PHUTHAO
0xB3 0x0E13 # THAI CHARACTER NO NEN
0xB4 0x0E14 # THAI CHARACTER DO DEK
0xB5 0x0E15 # THAI CHARACTER TO TAO
0xB6 0x0E16 # THAI CHARACTER THO THUNG
0xB7 0x0E17 # THAI CHARACTER THO THAHAN
0xB8 0x0E18 # THAI CHARACTER THO THONG
0xB9 0x0E19 # THAI CHARACTER NO NU
0xBA 0x0E1A # THAI CHARACTER BO BAIMAI
0xBB 0x0E1B # THAI CHARACTER PO PLA
0xBC 0x0E1C # THAI CHARACTER PHO PHUNG
0xBD 0x0E1D # THAI CHARACTER FO FA
0xBE 0x0E1E # THAI CHARACTER PHO PHAN
0xBF 0x0E1F # THAI CHARACTER FO FAN
0xC0 0x0E20 # THAI CHARACTER PHO SAMPHAO
0xC1 0x0E21 # THAI CHARACTER MO MA
0xC2 0x0E22 # THAI CHARACTER YO YAK
0xC3 0x0E23 # THAI CHARACTER RO RUA
0xC4 0x0E24 # THAI CHARACTER RU
0xC5 0x0E25 # THAI CHARACTER LO LING
0xC6 0x0E26 # THAI CHARACTER LU
0xC7 0x0E27 # THAI CHARACTER WO WAEN
0xC8 0x0E28 # THAI CHARACTER SO SALA
0xC9 0x0E29 # THAI CHARACTER SO RUSI
0xCA 0x0E2A # THAI CHARACTER SO SUA
0xCB 0x0E2B # THAI CHARACTER HO HIP
0xCC 0x0E2C # THAI CHARACTER LO CHULA
0xCD 0x0E2D # THAI CHARACTER O ANG
0xCE 0x0E2E # THAI CHARACTER HO NOKHUK
0xCF 0x0E2F # THAI CHARACTER PAIYANNOI
0xD0 0x0E30 # THAI CHARACTER SARA A
0xD1 0x0E31 # THAI CHARACTER MAI HAN-AKAT
0xD2 0x0E32 # THAI CHARACTER SARA AA
0xD3 0x0E33 # THAI CHARACTER SARA AM
0xD4 0x0E34 # THAI CHARACTER SARA I
0xD5 0x0E35 # THAI CHARACTER SARA II
0xD6 0x0E36 # THAI CHARACTER SARA UE
0xD7 0x0E37 # THAI CHARACTER SARA UEE
0xD8 0x0E38 # THAI CHARACTER SARA U
0xD9 0x0E39 # THAI CHARACTER SARA UU
0xDA 0x0E3A # THAI CHARACTER PHINTHU
0xDB 0xFFFD # REPLACEMENT CHARACTER
0xDC 0xFFFD # REPLACEMENT CHARACTER
0xDD 0xFFFD # REPLACEMENT CHARACTER
0xDE 0xFFFD # REPLACEMENT CHARACTER
0xDF 0x0E3F # THAI CURRENCY SYMBOL BAHT
0xE0 0x0E40 # THAI CHARACTER SARA E
0xE1 0x0E41 # THAI CHARACTER SARA AE
0xE2 0x0E42 # THAI CHARACTER SARA O
0xE3 0x0E43 # THAI CHARACTER SARA AI MAIMUAN
0xE4 0x0E44 # THAI CHARACTER SARA AI MAIMALAI
0xE5 0x0E45 # THAI CHARACTER LAKKHANGYAO
0xE6 0x0E46 # THAI CHARACTER MAIYAMOK
0xE7 0x0E47 # THAI CHARACTER MAITAIKHU
0xE8 0x0E48 # THAI CHARACTER MAI EK
0xE9 0x0E49 # THAI CHARACTER MAI THO
0xEA 0x0E4A # THAI CHARACTER MAI TRI
0xEB 0x0E4B # THAI CHARACTER MAI CHATTAWA
0xEC 0x0E4C # THAI CHARACTER THANTHAKHAT
0xED 0x0E4D # THAI CHARACTER NIKHAHIT
0xEE 0x0E4E # THAI CHARACTER YAMAKKAN
0xEF 0x0E4F # THAI CHARACTER FONGMAN
0xF0 0x0E50 # THAI DIGIT ZERO
0xF1 0x0E51 # THAI DIGIT ONE
0xF2 0x0E52 # THAI DIGIT TWO
0xF3 0x0E53 # THAI DIGIT THREE
0xF4 0x0E54 # THAI DIGIT FOUR
0xF5 0x0E55 # THAI DIGIT FIVE
0xF6 0x0E56 # THAI DIGIT SIX
0xF7 0x0E57 # THAI DIGIT SEVEN
0xF8 0x0E58 # THAI DIGIT EIGHT
0xF9 0x0E59 # THAI DIGIT NINE
0xFA 0x0E5A # THAI CHARACTER ANGKHANKHU
0xFB 0x0E5B # THAI CHARACTER KHOMUT
0xFC 0xFFFD # REPLACEMENT CHARACTER
0xFD 0xFFFD # REPLACEMENT CHARACTER
0xFE 0xFFFD # REPLACEMENT CHARACTER
0xFF 0xFFFD # REPLACEMENT CHARACTER
@@ -0,0 +1,287 @@
#
# $Id: VISCII.TXT,v 1.2 1999/08/23 18:34:17 mleisher Exp $
#
# Copyright 1999 Computing Research Labs, New Mexico State University
#
# Permission is hereby granted, free of charge, to any person obtaining a
# copy of this software and associated documentation files (the "Software"),
# to deal in the Software without restriction, including without limitation
# the rights to use, copy, modify, merge, publish, distribute, sublicense,
# and/or sell copies of the Software, and to permit persons to whom the
# Software is furnished to do so, subject to the following conditions:
#
# The above copyright notice and this permission notice shall be included in
# all copies or substantial portions of the Software.
#
# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL
# THE COMPUTING RESEARCH LAB OR NEW MEXICO STATE UNIVERSITY BE LIABLE FOR ANY
# CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT
# OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR
# THE USE OR OTHER DEALINGS IN THE SOFTWARE.
#
#
# VISCII 1.1 Vietnamese. Typed in by hand from the Viet-STD VISCII document
# available on the net.
#
# Mark Leisher <mleisher@crl.nmsu.edu>
# 06 March 1998
# 18 June 1998 - Added missing letter.
#
0x00 0x0000 # <control>
0x01 0x0001 # <control>
0x02 0x1EB2 # LATIN CAPITAL LETTER A WITH BREVE AND HOOK ABOVE
0x03 0x0003 # <control>
0x04 0x0004 # <control>
0x05 0x1EB4 # LATIN CAPITAL LETTER A WITH BREVE AND TILDE
0x06 0x1EAA # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND TILDE
0x07 0x0007 # <control>
0x08 0x0008 # <control>
0x09 0x0009 # <control>
0x0A 0x000A # <control>
0x0B 0x000B # <control>
0x0C 0x000C # <control>
0x0D 0x000D # <control>
0x0E 0x000E # <control>
0x0F 0x000F # <control>
0x10 0x0010 # <control>
0x11 0x0011 # <control>
0x12 0x0012 # <control>
0x13 0x0013 # <control>
0x14 0x1EF6 # LATIN CAPITAL LETTER Y WITH HOOK ABOVE
0x15 0x0015 # <control>
0x16 0x0016 # <control>
0x17 0x0017 # <control>
0x18 0x0018 # <control>
0x19 0x1EF8 # LATIN CAPITAL LETTER Y WITH TILDE
0x1A 0x001A # <control>
0x1B 0x001B # <control>
0x1C 0x001C # <control>
0x1D 0x001D # <control>
0x1E 0x1EF4 # LATIN CAPITAL LETTER Y WITH DOT BELOW
0x1F 0x001F # <control>
0x20 0x0020 # SPACE
0x21 0x0021 # EXCLAMATION MARK
0x22 0x0022 # QUOTATION MARK
0x23 0x0023 # NUMBER SIGN
0x24 0x0024 # DOLLAR SIGN
0x25 0x0025 # PERCENT SIGN
0x26 0x0026 # AMPERSAND
0x27 0x0027 # APOSTROPHE
0x28 0x0028 # LEFT PARENTHESIS
0x29 0x0029 # RIGHT PARENTHESIS
0x2A 0x002A # ASTERISK
0x2B 0x002B # PLUS SIGN
0x2C 0x002C # COMMA
0x2D 0x002D # HYPHEN-MINUS
0x2E 0x002E # FULL STOP
0x2F 0x002F # SOLIDUS
0x30 0x0030 # DIGIT ZERO
0x31 0x0031 # DIGIT ONE
0x32 0x0032 # DIGIT TWO
0x33 0x0033 # DIGIT THREE
0x34 0x0034 # DIGIT FOUR
0x35 0x0035 # DIGIT FIVE
0x36 0x0036 # DIGIT SIX
0x37 0x0037 # DIGIT SEVEN
0x38 0x0038 # DIGIT EIGHT
0x39 0x0039 # DIGIT NINE
0x3A 0x003A # COLON
0x3B 0x003B # SEMICOLON
0x3C 0x003C # LESS-THAN SIGN
0x3D 0x003D # EQUALS SIGN
0x3E 0x003E # GREATER-THAN SIGN
0x3F 0x003F # QUESTION MARK
0x40 0x0040 # COMMERCIAL AT
0x41 0x0041 # LATIN CAPITAL LETTER A
0x42 0x0042 # LATIN CAPITAL LETTER B
0x43 0x0043 # LATIN CAPITAL LETTER C
0x44 0x0044 # LATIN CAPITAL LETTER D
0x45 0x0045 # LATIN CAPITAL LETTER E
0x46 0x0046 # LATIN CAPITAL LETTER F
0x47 0x0047 # LATIN CAPITAL LETTER G
0x48 0x0048 # LATIN CAPITAL LETTER H
0x49 0x0049 # LATIN CAPITAL LETTER I
0x4A 0x004A # LATIN CAPITAL LETTER J
0x4B 0x004B # LATIN CAPITAL LETTER K
0x4C 0x004C # LATIN CAPITAL LETTER L
0x4D 0x004D # LATIN CAPITAL LETTER M
0x4E 0x004E # LATIN CAPITAL LETTER N
0x4F 0x004F # LATIN CAPITAL LETTER O
0x50 0x0050 # LATIN CAPITAL LETTER P
0x51 0x0051 # LATIN CAPITAL LETTER Q
0x52 0x0052 # LATIN CAPITAL LETTER R
0x53 0x0053 # LATIN CAPITAL LETTER S
0x54 0x0054 # LATIN CAPITAL LETTER T
0x55 0x0055 # LATIN CAPITAL LETTER U
0x56 0x0056 # LATIN CAPITAL LETTER V
0x57 0x0057 # LATIN CAPITAL LETTER W
0x58 0x0058 # LATIN CAPITAL LETTER X
0x59 0x0059 # LATIN CAPITAL LETTER Y
0x5A 0x005A # LATIN CAPITAL LETTER Z
0x5B 0x005B # LEFT SQUARE BRACKET
0x5C 0x005C # REVERSE SOLIDUS
0x5D 0x005D # RIGHT SQUARE BRACKET
0x5E 0x005E # CIRCUMFLEX ACCENT
0x5F 0x005F # LOW LINE
0x60 0x0060 # GRAVE ACCENT
0x61 0x0061 # LATIN SMALL LETTER A
0x62 0x0062 # LATIN SMALL LETTER B
0x63 0x0063 # LATIN SMALL LETTER C
0x64 0x0064 # LATIN SMALL LETTER D
0x65 0x0065 # LATIN SMALL LETTER E
0x66 0x0066 # LATIN SMALL LETTER F
0x67 0x0067 # LATIN SMALL LETTER G
0x68 0x0068 # LATIN SMALL LETTER H
0x69 0x0069 # LATIN SMALL LETTER I
0x6A 0x006A # LATIN SMALL LETTER J
0x6B 0x006B # LATIN SMALL LETTER K
0x6C 0x006C # LATIN SMALL LETTER L
0x6D 0x006D # LATIN SMALL LETTER M
0x6E 0x006E # LATIN SMALL LETTER N
0x6F 0x006F # LATIN SMALL LETTER O
0x70 0x0070 # LATIN SMALL LETTER P
0x71 0x0071 # LATIN SMALL LETTER Q
0x72 0x0072 # LATIN SMALL LETTER R
0x73 0x0073 # LATIN SMALL LETTER S
0x74 0x0074 # LATIN SMALL LETTER T
0x75 0x0075 # LATIN SMALL LETTER U
0x76 0x0076 # LATIN SMALL LETTER V
0x77 0x0077 # LATIN SMALL LETTER W
0x78 0x0078 # LATIN SMALL LETTER X
0x79 0x0079 # LATIN SMALL LETTER Y
0x7A 0x007A # LATIN SMALL LETTER Z
0x7B 0x007B # LEFT CURLY BRACKET
0x7C 0x007C # VERTICAL LINE
0x7D 0x007D # RIGHT CURLY BRACKET
0x7E 0x007E # TILDE
0x7F 0x007F # <control>
0x80 0x1EA0 # LATIN CAPITAL LETTER A WITH DOT BELOW
0x81 0x1EAE # LATIN CAPITAL LETTER A WITH BREVE AND ACUTE
0x82 0x1EB0 # LATIN CAPITAL LETTER A WITH BREVE AND GRAVE
0x83 0x1EB6 # LATIN CAPITAL LETTER A WITH BREVE AND DOT BELOW
0x84 0x1EA4 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND ACUTE
0x85 0x1EA6 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND GRAVE
0x86 0x1EA8 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
0x87 0x1EAC # LATIN CAPITAL LETTER A WITH CIRCUMFLEX AND DOT BELOW
0x88 0x1EBC # LATIN CAPITAL LETTER E WITH TILDE
0x89 0x1EB8 # LATIN CAPITAL LETTER E WITH DOT BELOW
0x8A 0x1EBE # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND ACUTE
0x8B 0x1EC0 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND GRAVE
0x8C 0x1EC2 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
0x8D 0x1EC4 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND TILDE
0x8E 0x1EC6 # LATIN CAPITAL LETTER E WITH CIRCUMFLEX AND DOT BELOW
0x8F 0x1ED0 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND ACUTE
0x90 0x1ED2 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND GRAVE
0x91 0x1ED4 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
0x92 0x1ED6 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND TILDE
0x93 0x1ED8 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX AND DOT BELOW
0x94 0x1EE2 # LATIN CAPITAL LETTER O WITH HORN AND DOT BELOW
0x95 0x1EDA # LATIN CAPITAL LETTER O WITH HORN AND ACUTE
0x96 0x1EDC # LATIN CAPITAL LETTER O WITH HORN AND GRAVE
0x97 0x1EDE # LATIN CAPITAL LETTER O WITH HORN AND HOOK ABOVE
0x98 0x1ECA # LATIN CAPITAL LETTER I WITH DOT BELOW
0x99 0x1ECE # LATIN CAPITAL LETTER O WITH HOOK ABOVE
0x9A 0x1ECC # LATIN CAPITAL LETTER O WITH DOT BELOW
0x9B 0x1EC8 # LATIN CAPITAL LETTER I WITH HOOK ABOVE
0x9C 0x1EE6 # LATIN CAPITAL LETTER U WITH HOOK ABOVE
0x9D 0x0168 # LATIN CAPITAL LETTER U WITH TILDE
0x9E 0x1EE4 # LATIN CAPITAL LETTER U WITH DOT BELOW
0x9F 0x1EF2 # LATIN CAPITAL LETTER Y WITH GRAVE
0xA0 0x00D5 # LATIN CAPITAL LETTER O WITH TILDE
0xA1 0x1EAF # LATIN SMALL LETTER A WITH BREVE AND ACUTE
0xA2 0x1EB1 # LATIN SMALL LETTER A WITH BREVE AND GRAVE
0xA3 0x1EB7 # LATIN SMALL LETTER A WITH BREVE AND DOT BELOW
0xA4 0x1EA5 # LATIN SMALL LETTER A WITH CIRCUMFLEX AND ACUTE
0xA5 0x1EA7 # LATIN SMALL LETTER A WITH CIRCUMFLEX AND GRAVE
0xA6 0x1EA9 # LATIN SMALL LETTER A WITH CIRCUMFLEX AND HOOK ABOVE
0xA7 0x1EAD # LATIN SMALL LETTER A WITH CIRCUMFLEX AND DOT BELOW
0xA8 0x1EBD # LATIN SMALL LETTER E WITH TILDE
0xA9 0x1EB9 # LATIN SMALL LETTER E WITH DOT BELOW
0xAA 0x1EBF # LATIN SMALL LETTER E WITH CIRCUMFLEX AND ACUTE
0xAB 0x1EC1 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND GRAVE
0xAC 0x1EC3 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND HOOK ABOVE
0xAD 0x1EC5 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND TILDE
0xAE 0x1EC7 # LATIN SMALL LETTER E WITH CIRCUMFLEX AND DOT BELOW
0xAF 0x1ED1 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND ACUTE
0xB0 0x1ED3 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND GRAVE
0xB1 0x1ED5 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND HOOK ABOVE
0xB2 0x1ED7 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND TILDE
0xB3 0x1EE0 # LATIN CAPITAL LETTER O WITH HORN AND TILDE
0xB4 0x01A0 # LATIN CAPITAL LETTER O WITH HORN
0xB5 0x1ED9 # LATIN SMALL LETTER O WITH CIRCUMFLEX AND DOT BELOW
0xB6 0x1EDD # LATIN SMALL LETTER O WITH HORN AND GRAVE
0xB7 0x1EDF # LATIN SMALL LETTER O WITH HORN AND HOOK ABOVE
0xB8 0x1ECB # LATIN SMALL LETTER I WITH DOT BELOW
0xB9 0x1EF0 # LATIN CAPITAL LETTER U WITH HORN AND DOT BELOW
0xBA 0x1EE8 # LATIN CAPITAL LETTER U WITH HORN AND ACUTE
0xBB 0x1EEA # LATIN CAPITAL LETTER U WITH HORN AND GRAVE
0xBC 0x1EEC # LATIN CAPITAL LETTER U WITH HORN AND HOOK ABOVE
0xBD 0x01A1 # LATIN SMALL LETTER O WITH HORN
0xBE 0x1EDB # LATIN SMALL LETTER O WITH HORN AND ACUTE
0xBF 0x01AF # LATIN CAPITAL LETTER U WITH HORN
0xC0 0x00C0 # LATIN CAPITAL LETTER A WITH GRAVE
0xC1 0x00C1 # LATIN CAPITAL LETTER A WITH ACUTE
0xC2 0x00C2 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
0xC3 0x00C3 # LATIN CAPITAL LETTER A WITH TILDE
0xC4 0x1EA2 # LATIN CAPITAL LETTER A WITH HOOK ABOVE
0xC5 0x0102 # LATIN CAPITAL LETTER A WITH BREVE
0xC6 0x1EB3 # LATIN SMALL LETTER A WITH BREVE AND HOOK ABOVE
0xC7 0x1EB5 # LATIN SMALL LETTER A WITH BREVE AND TILDE
0xC8 0x00C8 # LATIN CAPITAL LETTER E WITH GRAVE
0xC9 0x00C9 # LATIN CAPITAL LETTER E WITH ACUTE
0xCA 0x00CA # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
0xCB 0x1EBA # LATIN CAPITAL LETTER E WITH HOOK ABOVE
0xCC 0x00CC # LATIN CAPITAL LETTER I WITH GRAVE
0xCD 0x00CD # LATIN CAPITAL LETTER I WITH ACUTE
0xCE 0x0128 # LATIN CAPITAL LETTER I WITH TILDE
0xCF 0x1EF3 # LATIN SMALL LETTER Y WITH GRAVE
0xD0 0x0110 # LATIN CAPITAL LETTER D WITH STROKE
0xD1 0x1EE9 # LATIN SMALL LETTER U WITH HORN AND ACUTE
0xD2 0x00D2 # LATIN CAPITAL LETTER O WITH GRAVE
0xD3 0x00D3 # LATIN CAPITAL LETTER O WITH ACUTE
0xD4 0x00D4 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
0xD5 0x1EA1 # LATIN SMALL LETTER A WITH DOT BELOW
0xD6 0x1EF7 # LATIN SMALL LETTER Y WITH HOOK ABOVE
0xD7 0x1EEB # LATIN SMALL LETTER U WITH HORN AND GRAVE
0xD8 0x1EED # LATIN SMALL LETTER U WITH HORN AND HOOK ABOVE
0xD9 0x00D9 # LATIN CAPITAL LETTER U WITH GRAVE
0xDA 0x00DA # LATIN CAPITAL LETTER U WITH ACUTE
0xDB 0x1EF9 # LATIN SMALL LETTER Y WITH TILDE
0xDC 0x1EF5 # LATIN SMALL LETTER Y WITH DOT BELOW
0xDD 0x00DD # LATIN CAPITAL LETTER Y WITH ACUTE
0xDE 0x1EE1 # LATIN SMALL LETTER O WITH HORN AND TILDE
0xDF 0x01B0 # LATIN SMALL LETTER U WITH HORN
0xE0 0x00E0 # LATIN SMALL LETTER A WITH GRAVE
0xE1 0x00E1 # LATIN SMALL LETTER A WITH ACUTE
0xE2 0x00E2 # LATIN SMALL LETTER A WITH CIRCUMFLEX
0xE3 0x00E3 # LATIN SMALL LETTER A WITH TILDE
0xE4 0x1EA3 # LATIN SMALL LETTER A WITH HOOK ABOVE
0xE5 0x0103 # LATIN SMALL LETTER A WITH BREVE
0xE6 0x1EEF # LATIN SMALL LETTER U WITH HORN AND TILDE
0xE7 0x1EAB # LATIN SMALL LETTER A WITH CIRCUMFLEX AND TILDE
0xE8 0x00E8 # LATIN SMALL LETTER E WITH GRAVE
0xE9 0x00E9 # LATIN SMALL LETTER E WITH ACUTE
0xEA 0x00EA # LATIN SMALL LETTER E WITH CIRCUMFLEX
0xEB 0x1EBB # LATIN SMALL LETTER E WITH HOOK ABOVE
0xEC 0x00EC # LATIN SMALL LETTER I WITH GRAVE
0xED 0x00ED # LATIN SMALL LETTER I WITH ACUTE
0xEE 0x0129 # LATIN SMALL LETTER I WITH TILDE
0xEF 0x1EC9 # LATIN SMALL LETTER I WITH HOOK ABOVE
0xF0 0x0111 # LATIN SMALL LETTER D WITH STROKE
0xF1 0x1EF1 # LATIN SMALL LETTER U WITH HORN AND DOT BELOW
0xF2 0x00F2 # LATIN SMALL LETTER O WITH GRAVE
0xF3 0x00F3 # LATIN SMALL LETTER O WITH ACUTE
0xF4 0x00F4 # LATIN SMALL LETTER O WITH CIRCUMFLEX
0xF5 0x00F5 # LATIN SMALL LETTER O WITH TILDE
0xF6 0x1ECF # LATIN SMALL LETTER O WITH HOOK ABOVE
0xF7 0x1ECD # LATIN SMALL LETTER O WITH DOT BELOW
0xF8 0x1EE5 # LATIN SMALL LETTER U WITH DOT BELOW
0xF9 0x00F9 # LATIN SMALL LETTER U WITH GRAVE
0xFA 0x00FA # LATIN SMALL LETTER U WITH ACUTE
0xFB 0x0169 # LATIN SMALL LETTER U WITH TILDE
0xFC 0x1EE7 # LATIN SMALL LETTER U WITH HOOK ABOVE
0xFD 0x00FD # LATIN SMALL LETTER Y WITH ACUTE
0xFE 0x1EE3 # LATIN SMALL LETTER O WITH HORN AND DOT BELOW
0xFF 0x1EEE # LATIN CAPITAL LETTER U WITH HORN AND TILDE
@@ -0,0 +1,534 @@
#
# Contents: Map (external version) from Mac OS Arabic
# character set to Unicode 2.1 and later.
#
# Copyright: (c) 1994-2002, 2005 by Apple Computer, Inc., all rights
# reserved.
#
# Contact: charsets@apple.com
#
# Changes:
#
# c02 2005-Apr-04 Update header comments. Matches internal xml
# <c1.2> and Text Encoding Converter 2.0.
# b3,c1 2002-Dec-19 Add comments about character display and
# direction overrides. Update URLs, notes.
# Matches internal utom<b4>.
# b02 1999-Sep-22 Update contact e-mail address. Matches
# internal utom<b1>, ufrm<b1>, and Text
# Encoding Converter version 1.5.
# n10 1998-Feb-05 Show required Unicode character
# directionality in a different way. Matches
# internal utom<n4>, ufrm<n21>, and Text
# Encoding Converter version 1.3. Update
# header comments; include information on
# loose mapping of digits.
# n07 1997-Jul-17 Update to match internal utom<n2>, ufrm<n17>:
# Change standard mapping for 0xC0 from U+066D
# to U+274A. Add direction overrides to
# mappings for 0x25, 0x2C, 0x3B, 0x3F. Add
# information on variants.
# n03 1995-Apr-18 First version (after fixing some typos).
# Matches internal ufrm<n11>.
#
# Standard header:
# ----------------
#
# Apple, the Apple logo, and Macintosh are trademarks of Apple
# Computer, Inc., registered in the United States and other countries.
# Unicode is a trademark of Unicode Inc. For the sake of brevity,
# throughout this document, "Macintosh" can be used to refer to
# Macintosh computers and "Unicode" can be used to refer to the
# Unicode standard.
#
# Apple Computer, Inc. ("Apple") makes no warranty or representation,
# either express or implied, with respect to this document and the
# included data, its quality, accuracy, or fitness for a particular
# purpose. In no event will Apple be liable for direct, indirect,
# special, incidental, or consequential damages resulting from any
# defect or inaccuracy in this document or the included data.
#
# These mapping tables and character lists are subject to change.
# The latest tables should be available from the following:
#
# <http://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/>
#
# For general information about Mac OS encodings and these mapping
# tables, see the file "README.TXT".
#
# Format:
# -------
#
# Three tab-separated columns;
# '#' begins a comment which continues to the end of the line.
# Column #1 is the Mac OS Arabic code (in hex as 0xNN).
# Column #2 is the corresponding Unicode (in hex as 0xNNNN),
# possibly preceded by a tag indicating required directionality
# (i.e. <LR>+0xNNNN or <RL>+0xNNNN).
# Column #3 is a comment containing the Unicode name.
#
# The entries are in Mac OS Arabic code order.
#
# Control character mappings are not shown in this table, following
# the conventions of the standard UTC mapping tables. However, the
# Mac OS Arabic character set uses the standard control characters at
# 0x00-0x1F and 0x7F.
#
# Notes on Mac OS Arabic:
# -----------------------
#
# This is a legacy Mac OS encoding; in the Mac OS X Carbon and Cocoa
# environments, it is only supported via transcoding to and from
# Unicode.
#
# 1. General
#
# The Mac OS Arabic character set is intended to cover Arabic as
# used in North Africa, the Arabian peninsula, and the Levant. It
# also contains several characters needed for Urdu and/or Farsi.
#
# The Mac OS Arabic character set is essentially a superset of ISO
# 8859-6. The 8859-6 code points that are interpreted differently
# in the Mac OS Arabic set are as follows:
# 0xA0 is NO-BREAK SPACE in 8859-6 and right-left SPACE in Mac OS
# Arabic; NO-BREAK is 0x81 in Mac OS Arabic.
# 0xA4 is CURRENCY SIGN in 8859-6 and right-left DOLLAR SIGN in
# Mac OS Arabic.
# 0xAD is SOFT HYPHEN in 8859-6 and right-left HYPHEN-MINUS in
# Mac OS Arabic.
# ISO 8859-6 specifies that codes 0x30-0x39 can be rendered either
# with European digit shapes or Arabic digit shapes. This is also
# true in Mac OS Arabic, which determines from context which digit
# shapes to use (see below).
#
# The Mac OS Arabic character set uses the C1 controls area and other
# code points which are undefined in ISO 8859-6 for additional
# graphic characters: additional Arabic letters for Farsi and Urdu,
# some accented Roman letters for European languages (such as French),
# and duplicates of some of the punctuation, symbols, and digits in
# the ASCII block. The duplicate punctuation, symbol, and digit
# characters have right-left directionality, while the ASCII versions
# have left-right directionality. See the next section for more
# information on this.
#
# Mac OS Arabic characters 0xEB-0xF2 are non-spacing/combining marks.
#
# 2. Directional characters and roundtrip fidelity
#
# The Mac OS Arabic character set was developed in 1986-1987. At that
# time the bidirectional line layout algorithm used in the Mac OS
# Arabic system was fairly simple; it used only a few direction
# classes (instead of the 19 now used in the Unicode bidirectional
# algorithm). In order to permit users to handle some tricky layout
# problems, certain punctuation and symbol characters were encoded
# twice, one with a left-right direction attribute and the other with
# a right-left direction attribute.
#
# For example, plus sign is encoded at 0x2B with a left-right
# attribute, and at 0xAB with a right-left attribute. However, there
# is only one PLUS SIGN character in Unicode. This leads to some
# interesting problems when mapping between Mac OS Arabic and Unicode;
# see below.
#
# A related problem is that even when a particular character is
# encoded only once in Mac OS Arabic, it may have a different
# direction attribute than the corresponding Unicode character.
#
# For example, the Mac OS Arabic character at 0x93 is HORIZONTAL
# ELLIPSIS with strong right-left direction. However, the Unicode
# character HORIZONTAL ELLIPSIS has direction class neutral.
#
# 3. Behavior of ASCII-range numbers in WorldScript
#
# Mac OS Arabic also has two sets of digit codes.
#
# The digits at 0x30-0x39 may be displayed using either European
# digit forms or Arabic digit forms, depending on context. If there
# is a "strong European" character such as a Latin letter on either
# side of a sequence consisting of digits 0x30-0x39 and possibly comma
# 0x2C or period 0x2E, then the characters will be displayed using
# European forms (This will happen even if there are neutral characters
# between the digits and the strong European character). Otherwise, the
# digits will be displayed using Arabic forms, the comma will be
# displayed as Arabic thousands separator, and the period as Arabic
# decimal separator. In any case, 0x2C, 0x2E, and 0x30-0x39 are always
# left-right.
#
# The digits at 0xB0-0xB9 are always displayed using Arabic digit
# shapes, and moreover, these digits always have strong right-left
# directionality. These are mainly intended for special layout
# purposes such as part numbers, etc.
#
# 4. Font variants
#
# The table in this file gives the Unicode mappings for the standard
# Mac OS Arabic encoding. This encoding is supported by the Cairo font
# (the system font for Arabic), and is the encoding supported by the
# text processing utilities. However, the other Arabic fonts actually
# implement slightly different encodings; this mainly affects the code
# points 0xAA and 0xC0. For these code points the standard Mac OS
# Arabic encoding has the following mappings:
# 0xAA -> <RL>+0x002A ASTERISK, right-left
# 0xC0 -> <RL>+0x274A EIGHT TEARDROP-SPOKED PROPELLER ASTERISK,
# right-left
# This mapping of 0xAA is consistent with the normal convention for
# Mac OS Arabic and Hebrew that the right-left duplicates have codes
# that are equal to the ASCII code of the left-right character plus
# 0x80. However, in all of the other fonts, 0xAA is MULTIPLY SIGN, and
# right-left ASTERISK may be at a different code point. The other
# variants are described below.
#
# The TrueType variant is used for most of the Arabic TrueType fonts:
# Baghdad, Geeza, Kufi, Nadeem. It differs from the standard variant
# in the following way:
# 0xAA -> <RL>+0x00D7 MULTIPLICATION SIGN, right-left
# 0xC0 -> <RL>+0x002A ASTERISK, right-left
#
# The Thuluth variant is used for the Arabic Postscript-only fonts:
# Thuluth and Thuluth bold. It differs from the standard variant in
# the following way:
# 0xAA -> <RL>+0x00D7 MULTIPLICATION SIGN, right-left
# 0xC0 -> 0x066D ARABIC FIVE POINTED STAR
#
# The AlBayan variant is used for the Arabic TrueType font Al Bayan.
# It differs from the standard variant in the following way:
# 0x81 -> no mapping (glyph just has authorship information, etc.)
# 0xA3 -> 0xFDFA ARABIC LIGATURE SALLALLAHOU ALAYHE WASALLAM
# 0xA4 -> 0xFDF2 ARABIC LIGATURE ALLAH ISOLATED FORM
# 0xAA -> <RL>+0x00D7 MULTIPLICATION SIGN, right-left
# 0xDC -> <RL>+0x25CF BLACK CIRCLE, right-left
# 0xFC -> <RL>+0x25A0 BLACK SQUARE, right-left
#
# Unicode mapping issues and notes:
# ---------------------------------
#
# 1. Matching the direction of Mac OS Arabic characters
#
# When Mac OS Arabic encodes a character twice but with different
# direction attributes for the two code points - as in the case of
# plus sign mentioned above - we need a way to map both Mac OS Arabic
# code points to Unicode and back again without loss of information.
# With the plus sign, for example, mapping one of the Mac OS Arabic
# characters to a code in the Unicode corporate use zone is
# undesirable, since both of the plus sign characters are likely to
# be used in text that is interchanged.
#
# The problem is solved with the use of direction override characters
# and direction-dependent mappings. When mapping from Mac OS Arabic
# to Unicode, we use direction overrides as necessary to force the
# direction of the resulting Unicode characters.
#
# The required direction is indicated by a direction tag in the
# mappings. A tag of <LR> means the corresponding Unicode character
# must have a strong left-right context, and a tag of <RL> indicates
# a right-left context.
#
# For example, the mapping of 0x2B is given as <LR>+0x002B; the
# mapping of 0xAB is given as <RL>+0x002B. If we map an isolated
# instance of 0x2B to Unicode, it should be mapped as follows (LRO
# indicates LEFT-RIGHT OVERRIDE, PDF indicates POP DIRECTION
# FORMATTING):
#
# 0x2B -> 0x202D (LRO) + 0x002B (PLUS SIGN) + 0x202C (PDF)
#
# When mapping several characters in a row that require direction
# forcing, the overrides need only be used at the beginning and end.
# For example:
#
# 0x24 0x20 0x28 0x29 -> 0x202D 0x0024 0x0020 0x0028 0x0029 0x202C
#
# If neutral characters that require direction forcing are already
# between strong-direction characters with matching directionality,
# then direction overrides need not be used. Direction overrides are
# always needed to map the right-left digits at 0xB0-0xB9.
#
# When mapping from Unicode to Mac OS Arabic, the Unicode
# bidirectional algorithm should be used to determine resolved
# direction of the Unicode characters. The mapping from Unicode to
# Mac OS Arabic can then be disambiguated by the use of the resolved
# direction:
#
# Unicode 0x002B -> Mac OS Arabic 0x2B (if L) or 0xAB (if R)
#
# However, this also means the direction override characters should
# be discarded when mapping from Unicode to Mac OS Arabic (after
# they have been used to determine resolved direction), since the
# direction override information is carried by the code point itself.
#
# Even when direction overrides are not needed for roundtrip
# fidelity, they are sometimes used when mapping Mac OS Arabic
# characters to Unicode in order to achieve similar text layout with
# the resulting Unicode text. For example, the single Mac OS Arabic
# ellipsis character has direction class right-left,and there is no
# left-right version. However, the Unicode HORIZONTAL ELLIPSIS
# character has direction class neutral (which means it may end up
# with a resolved direction of left-right if surrounded by left-right
# characters). When mapping the Mac OS Arabic ellipsis to Unicode, it
# is surrounded with a direction override to help preserve proper
# text layout. The resolved direction is not needed or used when
# mapping the Unicode HORIZONTAL ELLIPSIS back to Mac OS Arabic.
#
# 2. Mapping the Mac OS Arabic digits
#
# The main table below contains mappings that should be used when
# strict round-trip fidelity is required. However, for numeric
# values, the mappings in that table will produce Unicode characters
# that may appear different than the Mac OS Arabic text displayed on
# a Mac OS system using WorldScript. This is because WorldScript
# uses context-dependent display for the 0x30-0x39 digits.
#
# If roundtrip fidelity is not required, then the following
# alternate mappings should be used when a sequence of 0x30-0x39
# digits - possibly including 0x2C and 0x2E - occurs in an Arabic
# context (that is, when the first "strong" character on either side
# of the digit sequence is Arabic, or there is no strong character):
#
# 0x2C 0x066C # ARABIC THOUSANDS SEPARATOR
# 0x2E 0x066B # ARABIC DECIMAL SEPARATOR
# 0x30 0x0660 # ARABIC-INDIC DIGIT ZERO
# 0x31 0x0661 # ARABIC-INDIC DIGIT ONE
# 0x32 0x0662 # ARABIC-INDIC DIGIT TWO
# 0x33 0x0663 # ARABIC-INDIC DIGIT THREE
# 0x34 0x0664 # ARABIC-INDIC DIGIT FOUR
# 0x35 0x0665 # ARABIC-INDIC DIGIT FIVE
# 0x36 0x0666 # ARABIC-INDIC DIGIT SIX
# 0x37 0x0667 # ARABIC-INDIC DIGIT SEVEN
# 0x38 0x0668 # ARABIC-INDIC DIGIT EIGHT
# 0x39 0x0669 # ARABIC-INDIC DIGIT NINE
#
# Details of mapping changes in each version:
# -------------------------------------------
#
# Changes from version n03 to version n07:
#
# - Change mapping for 0xC0 from U+066D to U+274A.
#
# - Add direction overrides (required directionality) to mappings
# for 0x25, 0x2C, 0x3B, 0x3F.
#
##################
0x20 <LR>+0x0020 # SPACE, left-right
0x21 <LR>+0x0021 # EXCLAMATION MARK, left-right
0x22 <LR>+0x0022 # QUOTATION MARK, left-right
0x23 <LR>+0x0023 # NUMBER SIGN, left-right
0x24 <LR>+0x0024 # DOLLAR SIGN, left-right
0x25 <LR>+0x0025 # PERCENT SIGN, left-right
0x26 <LR>+0x0026 # AMPERSAND, left-right
0x27 <LR>+0x0027 # APOSTROPHE, left-right
0x28 <LR>+0x0028 # LEFT PARENTHESIS, left-right
0x29 <LR>+0x0029 # RIGHT PARENTHESIS, left-right
0x2A <LR>+0x002A # ASTERISK, left-right
0x2B <LR>+0x002B # PLUS SIGN, left-right
0x2C <LR>+0x002C # COMMA, left-right; in Arabic-script context, displayed as 0x066C ARABIC THOUSANDS SEPARATOR
0x2D <LR>+0x002D # HYPHEN-MINUS, left-right
0x2E <LR>+0x002E # FULL STOP, left-right; in Arabic-script context, displayed as 0x066B ARABIC DECIMAL SEPARATOR
0x2F <LR>+0x002F # SOLIDUS, left-right
0x30 0x0030 # DIGIT ZERO; in Arabic-script context, displayed as 0x0660 ARABIC-INDIC DIGIT ZERO
0x31 0x0031 # DIGIT ONE; in Arabic-script context, displayed as 0x0661 ARABIC-INDIC DIGIT ONE
0x32 0x0032 # DIGIT TWO; in Arabic-script context, displayed as 0x0662 ARABIC-INDIC DIGIT TWO
0x33 0x0033 # DIGIT THREE; in Arabic-script context, displayed as 0x0663 ARABIC-INDIC DIGIT THREE
0x34 0x0034 # DIGIT FOUR; in Arabic-script context, displayed as 0x0664 ARABIC-INDIC DIGIT FOUR
0x35 0x0035 # DIGIT FIVE; in Arabic-script context, displayed as 0x0665 ARABIC-INDIC DIGIT FIVE
0x36 0x0036 # DIGIT SIX; in Arabic-script context, displayed as 0x0666 ARABIC-INDIC DIGIT SIX
0x37 0x0037 # DIGIT SEVEN; in Arabic-script context, displayed as 0x0667 ARABIC-INDIC DIGIT SEVEN
0x38 0x0038 # DIGIT EIGHT; in Arabic-script context, displayed as 0x0668 ARABIC-INDIC DIGIT EIGHT
0x39 0x0039 # DIGIT NINE; in Arabic-script context, displayed as 0x0669 ARABIC-INDIC DIGIT NINE
0x3A <LR>+0x003A # COLON, left-right
0x3B <LR>+0x003B # SEMICOLON, left-right
0x3C <LR>+0x003C # LESS-THAN SIGN, left-right
0x3D <LR>+0x003D # EQUALS SIGN, left-right
0x3E <LR>+0x003E # GREATER-THAN SIGN, left-right
0x3F <LR>+0x003F # QUESTION MARK, left-right
0x40 0x0040 # COMMERCIAL AT
0x41 0x0041 # LATIN CAPITAL LETTER A
0x42 0x0042 # LATIN CAPITAL LETTER B
0x43 0x0043 # LATIN CAPITAL LETTER C
0x44 0x0044 # LATIN CAPITAL LETTER D
0x45 0x0045 # LATIN CAPITAL LETTER E
0x46 0x0046 # LATIN CAPITAL LETTER F
0x47 0x0047 # LATIN CAPITAL LETTER G
0x48 0x0048 # LATIN CAPITAL LETTER H
0x49 0x0049 # LATIN CAPITAL LETTER I
0x4A 0x004A # LATIN CAPITAL LETTER J
0x4B 0x004B # LATIN CAPITAL LETTER K
0x4C 0x004C # LATIN CAPITAL LETTER L
0x4D 0x004D # LATIN CAPITAL LETTER M
0x4E 0x004E # LATIN CAPITAL LETTER N
0x4F 0x004F # LATIN CAPITAL LETTER O
0x50 0x0050 # LATIN CAPITAL LETTER P
0x51 0x0051 # LATIN CAPITAL LETTER Q
0x52 0x0052 # LATIN CAPITAL LETTER R
0x53 0x0053 # LATIN CAPITAL LETTER S
0x54 0x0054 # LATIN CAPITAL LETTER T
0x55 0x0055 # LATIN CAPITAL LETTER U
0x56 0x0056 # LATIN CAPITAL LETTER V
0x57 0x0057 # LATIN CAPITAL LETTER W
0x58 0x0058 # LATIN CAPITAL LETTER X
0x59 0x0059 # LATIN CAPITAL LETTER Y
0x5A 0x005A # LATIN CAPITAL LETTER Z
0x5B <LR>+0x005B # LEFT SQUARE BRACKET, left-right
0x5C <LR>+0x005C # REVERSE SOLIDUS, left-right
0x5D <LR>+0x005D # RIGHT SQUARE BRACKET, left-right
0x5E <LR>+0x005E # CIRCUMFLEX ACCENT, left-right
0x5F <LR>+0x005F # LOW LINE, left-right
0x60 0x0060 # GRAVE ACCENT
0x61 0x0061 # LATIN SMALL LETTER A
0x62 0x0062 # LATIN SMALL LETTER B
0x63 0x0063 # LATIN SMALL LETTER C
0x64 0x0064 # LATIN SMALL LETTER D
0x65 0x0065 # LATIN SMALL LETTER E
0x66 0x0066 # LATIN SMALL LETTER F
0x67 0x0067 # LATIN SMALL LETTER G
0x68 0x0068 # LATIN SMALL LETTER H
0x69 0x0069 # LATIN SMALL LETTER I
0x6A 0x006A # LATIN SMALL LETTER J
0x6B 0x006B # LATIN SMALL LETTER K
0x6C 0x006C # LATIN SMALL LETTER L
0x6D 0x006D # LATIN SMALL LETTER M
0x6E 0x006E # LATIN SMALL LETTER N
0x6F 0x006F # LATIN SMALL LETTER O
0x70 0x0070 # LATIN SMALL LETTER P
0x71 0x0071 # LATIN SMALL LETTER Q
0x72 0x0072 # LATIN SMALL LETTER R
0x73 0x0073 # LATIN SMALL LETTER S
0x74 0x0074 # LATIN SMALL LETTER T
0x75 0x0075 # LATIN SMALL LETTER U
0x76 0x0076 # LATIN SMALL LETTER V
0x77 0x0077 # LATIN SMALL LETTER W
0x78 0x0078 # LATIN SMALL LETTER X
0x79 0x0079 # LATIN SMALL LETTER Y
0x7A 0x007A # LATIN SMALL LETTER Z
0x7B <LR>+0x007B # LEFT CURLY BRACKET, left-right
0x7C <LR>+0x007C # VERTICAL LINE, left-right
0x7D <LR>+0x007D # RIGHT CURLY BRACKET, left-right
0x7E 0x007E # TILDE
#
0x80 0x00C4 # LATIN CAPITAL LETTER A WITH DIAERESIS
0x81 <RL>+0x00A0 # NO-BREAK SPACE, right-left
0x82 0x00C7 # LATIN CAPITAL LETTER C WITH CEDILLA
0x83 0x00C9 # LATIN CAPITAL LETTER E WITH ACUTE
0x84 0x00D1 # LATIN CAPITAL LETTER N WITH TILDE
0x85 0x00D6 # LATIN CAPITAL LETTER O WITH DIAERESIS
0x86 0x00DC # LATIN CAPITAL LETTER U WITH DIAERESIS
0x87 0x00E1 # LATIN SMALL LETTER A WITH ACUTE
0x88 0x00E0 # LATIN SMALL LETTER A WITH GRAVE
0x89 0x00E2 # LATIN SMALL LETTER A WITH CIRCUMFLEX
0x8A 0x00E4 # LATIN SMALL LETTER A WITH DIAERESIS
0x8B 0x06BA # ARABIC LETTER NOON GHUNNA
0x8C <RL>+0x00AB # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK, right-left
0x8D 0x00E7 # LATIN SMALL LETTER C WITH CEDILLA
0x8E 0x00E9 # LATIN SMALL LETTER E WITH ACUTE
0x8F 0x00E8 # LATIN SMALL LETTER E WITH GRAVE
0x90 0x00EA # LATIN SMALL LETTER E WITH CIRCUMFLEX
0x91 0x00EB # LATIN SMALL LETTER E WITH DIAERESIS
0x92 0x00ED # LATIN SMALL LETTER I WITH ACUTE
0x93 <RL>+0x2026 # HORIZONTAL ELLIPSIS, right-left
0x94 0x00EE # LATIN SMALL LETTER I WITH CIRCUMFLEX
0x95 0x00EF # LATIN SMALL LETTER I WITH DIAERESIS
0x96 0x00F1 # LATIN SMALL LETTER N WITH TILDE
0x97 0x00F3 # LATIN SMALL LETTER O WITH ACUTE
0x98 <RL>+0x00BB # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK, right-left
0x99 0x00F4 # LATIN SMALL LETTER O WITH CIRCUMFLEX
0x9A 0x00F6 # LATIN SMALL LETTER O WITH DIAERESIS
0x9B <RL>+0x00F7 # DIVISION SIGN, right-left
0x9C 0x00FA # LATIN SMALL LETTER U WITH ACUTE
0x9D 0x00F9 # LATIN SMALL LETTER U WITH GRAVE
0x9E 0x00FB # LATIN SMALL LETTER U WITH CIRCUMFLEX
0x9F 0x00FC # LATIN SMALL LETTER U WITH DIAERESIS
0xA0 <RL>+0x0020 # SPACE, right-left
0xA1 <RL>+0x0021 # EXCLAMATION MARK, right-left
0xA2 <RL>+0x0022 # QUOTATION MARK, right-left
0xA3 <RL>+0x0023 # NUMBER SIGN, right-left
0xA4 <RL>+0x0024 # DOLLAR SIGN, right-left
0xA5 0x066A # ARABIC PERCENT SIGN
0xA6 <RL>+0x0026 # AMPERSAND, right-left
0xA7 <RL>+0x0027 # APOSTROPHE, right-left
0xA8 <RL>+0x0028 # LEFT PARENTHESIS, right-left
0xA9 <RL>+0x0029 # RIGHT PARENTHESIS, right-left
0xAA <RL>+0x002A # ASTERISK, right-left
0xAB <RL>+0x002B # PLUS SIGN, right-left
0xAC 0x060C # ARABIC COMMA
0xAD <RL>+0x002D # HYPHEN-MINUS, right-left
0xAE <RL>+0x002E # FULL STOP, right-left
0xAF <RL>+0x002F # SOLIDUS, right-left
0xB0 <RL>+0x0660 # ARABIC-INDIC DIGIT ZERO, right-left (need override)
0xB1 <RL>+0x0661 # ARABIC-INDIC DIGIT ONE, right-left (need override)
0xB2 <RL>+0x0662 # ARABIC-INDIC DIGIT TWO, right-left (need override)
0xB3 <RL>+0x0663 # ARABIC-INDIC DIGIT THREE, right-left (need override)
0xB4 <RL>+0x0664 # ARABIC-INDIC DIGIT FOUR, right-left (need override)
0xB5 <RL>+0x0665 # ARABIC-INDIC DIGIT FIVE, right-left (need override)
0xB6 <RL>+0x0666 # ARABIC-INDIC DIGIT SIX, right-left (need override)
0xB7 <RL>+0x0667 # ARABIC-INDIC DIGIT SEVEN, right-left (need override)
0xB8 <RL>+0x0668 # ARABIC-INDIC DIGIT EIGHT, right-left (need override)
0xB9 <RL>+0x0669 # ARABIC-INDIC DIGIT NINE, right-left (need override)
0xBA <RL>+0x003A # COLON, right-left
0xBB 0x061B # ARABIC SEMICOLON
0xBC <RL>+0x003C # LESS-THAN SIGN, right-left
0xBD <RL>+0x003D # EQUALS SIGN, right-left
0xBE <RL>+0x003E # GREATER-THAN SIGN, right-left
0xBF 0x061F # ARABIC QUESTION MARK
0xC0 <RL>+0x274A # EIGHT TEARDROP-SPOKED PROPELLER ASTERISK, right-left
0xC1 0x0621 # ARABIC LETTER HAMZA
0xC2 0x0622 # ARABIC LETTER ALEF WITH MADDA ABOVE
0xC3 0x0623 # ARABIC LETTER ALEF WITH HAMZA ABOVE
0xC4 0x0624 # ARABIC LETTER WAW WITH HAMZA ABOVE
0xC5 0x0625 # ARABIC LETTER ALEF WITH HAMZA BELOW
0xC6 0x0626 # ARABIC LETTER YEH WITH HAMZA ABOVE
0xC7 0x0627 # ARABIC LETTER ALEF
0xC8 0x0628 # ARABIC LETTER BEH
0xC9 0x0629 # ARABIC LETTER TEH MARBUTA
0xCA 0x062A # ARABIC LETTER TEH
0xCB 0x062B # ARABIC LETTER THEH
0xCC 0x062C # ARABIC LETTER JEEM
0xCD 0x062D # ARABIC LETTER HAH
0xCE 0x062E # ARABIC LETTER KHAH
0xCF 0x062F # ARABIC LETTER DAL
0xD0 0x0630 # ARABIC LETTER THAL
0xD1 0x0631 # ARABIC LETTER REH
0xD2 0x0632 # ARABIC LETTER ZAIN
0xD3 0x0633 # ARABIC LETTER SEEN
0xD4 0x0634 # ARABIC LETTER SHEEN
0xD5 0x0635 # ARABIC LETTER SAD
0xD6 0x0636 # ARABIC LETTER DAD
0xD7 0x0637 # ARABIC LETTER TAH
0xD8 0x0638 # ARABIC LETTER ZAH
0xD9 0x0639 # ARABIC LETTER AIN
0xDA 0x063A # ARABIC LETTER GHAIN
0xDB <RL>+0x005B # LEFT SQUARE BRACKET, right-left
0xDC <RL>+0x005C # REVERSE SOLIDUS, right-left
0xDD <RL>+0x005D # RIGHT SQUARE BRACKET, right-left
0xDE <RL>+0x005E # CIRCUMFLEX ACCENT, right-left
0xDF <RL>+0x005F # LOW LINE, right-left
0xE0 0x0640 # ARABIC TATWEEL
0xE1 0x0641 # ARABIC LETTER FEH
0xE2 0x0642 # ARABIC LETTER QAF
0xE3 0x0643 # ARABIC LETTER KAF
0xE4 0x0644 # ARABIC LETTER LAM
0xE5 0x0645 # ARABIC LETTER MEEM
0xE6 0x0646 # ARABIC LETTER NOON
0xE7 0x0647 # ARABIC LETTER HEH
0xE8 0x0648 # ARABIC LETTER WAW
0xE9 0x0649 # ARABIC LETTER ALEF MAKSURA
0xEA 0x064A # ARABIC LETTER YEH
0xEB 0x064B # ARABIC FATHATAN
0xEC 0x064C # ARABIC DAMMATAN
0xED 0x064D # ARABIC KASRATAN
0xEE 0x064E # ARABIC FATHA
0xEF 0x064F # ARABIC DAMMA
0xF0 0x0650 # ARABIC KASRA
0xF1 0x0651 # ARABIC SHADDA
0xF2 0x0652 # ARABIC SUKUN
0xF3 0x067E # ARABIC LETTER PEH
0xF4 0x0679 # ARABIC LETTER TTEH
0xF5 0x0686 # ARABIC LETTER TCHEH
0xF6 0x06D5 # ARABIC LETTER AE
0xF7 0x06A4 # ARABIC LETTER VEH
0xF8 0x06AF # ARABIC LETTER GAF
0xF9 0x0688 # ARABIC LETTER DDAL
0xFA 0x0691 # ARABIC LETTER RREH
0xFB <RL>+0x007B # LEFT CURLY BRACKET, right-left
0xFC <RL>+0x007C # VERTICAL LINE, right-left
0xFD <RL>+0x007D # RIGHT CURLY BRACKET, right-left
0xFE 0x0698 # ARABIC LETTER JEH
0xFF 0x06D2 # ARABIC LETTER YEH BARREE
@@ -0,0 +1,326 @@
#
# Contents: Map (external version) from Mac OS Celtic
# character set to Unicode 2.1 and later
#
# Contacts: charsets@apple.com, everson@evertype.com
#
# Changes:
#
# c01 2005-Apr-01 First posted version. Matches internal xml
# <c1.1> and Text Encoding Converter 2.0.
#
# Standard header:
# ----------------
#
# Apple, the Apple logo, and Macintosh are trademarks of Apple
# Computer, Inc., registered in the United States and other countries.
# Unicode is a trademark of Unicode Inc. For the sake of brevity,
# throughout this document, "Macintosh" can be used to refer to
# Macintosh computers and "Unicode" can be used to refer to the
# Unicode standard.
#
# Apple Computer, Inc. ("Apple") makes no warranty or representation,
# either express or implied, with respect to this document and the
# included data, its quality, accuracy, or fitness for a particular
# purpose. In no event will Apple be liable for direct, indirect,
# special, incidental, or consequential damages resulting from any
# defect or inaccuracy in this document or the included data.
#
# These mapping tables and character lists are subject to change.
# The latest tables should be available from the following:
#
# <http://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/>
#
# For general information about Mac OS encodings and these mapping
# tables, see the file "README.TXT".
#
# Format:
# -------
#
# Three tab-separated columns;
# '#' begins a comment which continues to the end of the line.
# Column #1 is the Mac OS Celtic code (in hex as 0xNN)
# Column #2 is the corresponding Unicode (in hex as 0xNNNN)
# Column #3 is a comment containing the Unicode name
#
# The entries are in Mac OS Celtic code order.
#
# Control character mappings are not shown in this table, following
# the conventions of the standard UTC mapping tables. However, the
# Mac OS Celtic character set uses the standard control characters
# at 0x00-0x1F and 0x7F.
#
# Notes on Mac OS Celtic (partly from Michael Everson):
# -----------------------------------------------------
#
# This is a legacy Mac OS encoding; in the Mac OS X Carbon and Cocoa
# environments, it is only supported via transcoding to and from
# Unicode.
#
# This character set was developed by Michael Everson of Everson
# Typography (everson@evertype.com) and was used for the Irish
# localizations of Mac OS 6.0.8 and 7.1, for the Welsh localization of
# Mac OS 7.1, and for several fonts that can be used on any version of
# Mac OS 7.1 or later. Note that while Apple authorized
# the Irish and Welsh localizations mentioned above, they were not
# systems which shipped with Apple hardware, and were not otherwise
# supported by Apple. Fonts conforming to the Mac OS Celtic character
# set are available from Everson Typography (http://www.evertype.com)
# and MEU Cymru (http://www.meucymru.co.uk). Information about the use
# of this character set is available at
# http://www.evertype.com/celtscript/celtcode.html.
#
# The Mac OS Celtic encoding shares the script code smRoman (0) with
# the standard Mac OS Roman encoding. To determine if the Celtic
# encoding is being used in Mac OS 7-9, you should also check if the
# system region code is 50, verIreland, or 79, verWales. Otherwise,
# you can check for particular fonts that conform to this encoding.
#
# This character set is a variant of standard Mac OS Roman, adding
# capital and small y with acute, grave, and circumflex, and capital
# and small w with acute, grave, circumflex and diaeresis. It has 14
# code point differences from standard Mac OS Roman (0xDE, 0xDF, 0xE2,
# 0xE3, 0xF6-0xFF).
#
# Before Mac OS 8.5, code point 0xDB was CURRENCY SIGN, and was
# mapped to U+00A4. In Mac OS 8.5 and later versions, code point
# 0xDB is changed to EURO SIGN and maps to U+20AC; the standard
# Apple fonts were updated for Mac OS 8.5 to reflect this. There is
# a "currency sign" variant of the Mac OS Celtic encoding that still
# maps 0xDB to U+00A4; this can be used for older fonts.
# Note: U+20AC is new with Unicode 2.1; for earlier Unicode
# versions, Mac OS Celtic 0xDB may be mapped to private-use
# character U+F8A0.
#
# Unicode mapping issues and notes:
# ---------------------------------
#
# Details of mapping changes in each version:
# -------------------------------------------
#
##################
0x20 0x0020 # SPACE
0x21 0x0021 # EXCLAMATION MARK
0x22 0x0022 # QUOTATION MARK
0x23 0x0023 # NUMBER SIGN
0x24 0x0024 # DOLLAR SIGN
0x25 0x0025 # PERCENT SIGN
0x26 0x0026 # AMPERSAND
0x27 0x0027 # APOSTROPHE
0x28 0x0028 # LEFT PARENTHESIS
0x29 0x0029 # RIGHT PARENTHESIS
0x2A 0x002A # ASTERISK
0x2B 0x002B # PLUS SIGN
0x2C 0x002C # COMMA
0x2D 0x002D # HYPHEN-MINUS
0x2E 0x002E # FULL STOP
0x2F 0x002F # SOLIDUS
0x30 0x0030 # DIGIT ZERO
0x31 0x0031 # DIGIT ONE
0x32 0x0032 # DIGIT TWO
0x33 0x0033 # DIGIT THREE
0x34 0x0034 # DIGIT FOUR
0x35 0x0035 # DIGIT FIVE
0x36 0x0036 # DIGIT SIX
0x37 0x0037 # DIGIT SEVEN
0x38 0x0038 # DIGIT EIGHT
0x39 0x0039 # DIGIT NINE
0x3A 0x003A # COLON
0x3B 0x003B # SEMICOLON
0x3C 0x003C # LESS-THAN SIGN
0x3D 0x003D # EQUALS SIGN
0x3E 0x003E # GREATER-THAN SIGN
0x3F 0x003F # QUESTION MARK
0x40 0x0040 # COMMERCIAL AT
0x41 0x0041 # LATIN CAPITAL LETTER A
0x42 0x0042 # LATIN CAPITAL LETTER B
0x43 0x0043 # LATIN CAPITAL LETTER C
0x44 0x0044 # LATIN CAPITAL LETTER D
0x45 0x0045 # LATIN CAPITAL LETTER E
0x46 0x0046 # LATIN CAPITAL LETTER F
0x47 0x0047 # LATIN CAPITAL LETTER G
0x48 0x0048 # LATIN CAPITAL LETTER H
0x49 0x0049 # LATIN CAPITAL LETTER I
0x4A 0x004A # LATIN CAPITAL LETTER J
0x4B 0x004B # LATIN CAPITAL LETTER K
0x4C 0x004C # LATIN CAPITAL LETTER L
0x4D 0x004D # LATIN CAPITAL LETTER M
0x4E 0x004E # LATIN CAPITAL LETTER N
0x4F 0x004F # LATIN CAPITAL LETTER O
0x50 0x0050 # LATIN CAPITAL LETTER P
0x51 0x0051 # LATIN CAPITAL LETTER Q
0x52 0x0052 # LATIN CAPITAL LETTER R
0x53 0x0053 # LATIN CAPITAL LETTER S
0x54 0x0054 # LATIN CAPITAL LETTER T
0x55 0x0055 # LATIN CAPITAL LETTER U
0x56 0x0056 # LATIN CAPITAL LETTER V
0x57 0x0057 # LATIN CAPITAL LETTER W
0x58 0x0058 # LATIN CAPITAL LETTER X
0x59 0x0059 # LATIN CAPITAL LETTER Y
0x5A 0x005A # LATIN CAPITAL LETTER Z
0x5B 0x005B # LEFT SQUARE BRACKET
0x5C 0x005C # REVERSE SOLIDUS
0x5D 0x005D # RIGHT SQUARE BRACKET
0x5E 0x005E # CIRCUMFLEX ACCENT
0x5F 0x005F # LOW LINE
0x60 0x0060 # GRAVE ACCENT
0x61 0x0061 # LATIN SMALL LETTER A
0x62 0x0062 # LATIN SMALL LETTER B
0x63 0x0063 # LATIN SMALL LETTER C
0x64 0x0064 # LATIN SMALL LETTER D
0x65 0x0065 # LATIN SMALL LETTER E
0x66 0x0066 # LATIN SMALL LETTER F
0x67 0x0067 # LATIN SMALL LETTER G
0x68 0x0068 # LATIN SMALL LETTER H
0x69 0x0069 # LATIN SMALL LETTER I
0x6A 0x006A # LATIN SMALL LETTER J
0x6B 0x006B # LATIN SMALL LETTER K
0x6C 0x006C # LATIN SMALL LETTER L
0x6D 0x006D # LATIN SMALL LETTER M
0x6E 0x006E # LATIN SMALL LETTER N
0x6F 0x006F # LATIN SMALL LETTER O
0x70 0x0070 # LATIN SMALL LETTER P
0x71 0x0071 # LATIN SMALL LETTER Q
0x72 0x0072 # LATIN SMALL LETTER R
0x73 0x0073 # LATIN SMALL LETTER S
0x74 0x0074 # LATIN SMALL LETTER T
0x75 0x0075 # LATIN SMALL LETTER U
0x76 0x0076 # LATIN SMALL LETTER V
0x77 0x0077 # LATIN SMALL LETTER W
0x78 0x0078 # LATIN SMALL LETTER X
0x79 0x0079 # LATIN SMALL LETTER Y
0x7A 0x007A # LATIN SMALL LETTER Z
0x7B 0x007B # LEFT CURLY BRACKET
0x7C 0x007C # VERTICAL LINE
0x7D 0x007D # RIGHT CURLY BRACKET
0x7E 0x007E # TILDE
#
0x80 0x00C4 # LATIN CAPITAL LETTER A WITH DIAERESIS
0x81 0x00C5 # LATIN CAPITAL LETTER A WITH RING ABOVE
0x82 0x00C7 # LATIN CAPITAL LETTER C WITH CEDILLA
0x83 0x00C9 # LATIN CAPITAL LETTER E WITH ACUTE
0x84 0x00D1 # LATIN CAPITAL LETTER N WITH TILDE
0x85 0x00D6 # LATIN CAPITAL LETTER O WITH DIAERESIS
0x86 0x00DC # LATIN CAPITAL LETTER U WITH DIAERESIS
0x87 0x00E1 # LATIN SMALL LETTER A WITH ACUTE
0x88 0x00E0 # LATIN SMALL LETTER A WITH GRAVE
0x89 0x00E2 # LATIN SMALL LETTER A WITH CIRCUMFLEX
0x8A 0x00E4 # LATIN SMALL LETTER A WITH DIAERESIS
0x8B 0x00E3 # LATIN SMALL LETTER A WITH TILDE
0x8C 0x00E5 # LATIN SMALL LETTER A WITH RING ABOVE
0x8D 0x00E7 # LATIN SMALL LETTER C WITH CEDILLA
0x8E 0x00E9 # LATIN SMALL LETTER E WITH ACUTE
0x8F 0x00E8 # LATIN SMALL LETTER E WITH GRAVE
0x90 0x00EA # LATIN SMALL LETTER E WITH CIRCUMFLEX
0x91 0x00EB # LATIN SMALL LETTER E WITH DIAERESIS
0x92 0x00ED # LATIN SMALL LETTER I WITH ACUTE
0x93 0x00EC # LATIN SMALL LETTER I WITH GRAVE
0x94 0x00EE # LATIN SMALL LETTER I WITH CIRCUMFLEX
0x95 0x00EF # LATIN SMALL LETTER I WITH DIAERESIS
0x96 0x00F1 # LATIN SMALL LETTER N WITH TILDE
0x97 0x00F3 # LATIN SMALL LETTER O WITH ACUTE
0x98 0x00F2 # LATIN SMALL LETTER O WITH GRAVE
0x99 0x00F4 # LATIN SMALL LETTER O WITH CIRCUMFLEX
0x9A 0x00F6 # LATIN SMALL LETTER O WITH DIAERESIS
0x9B 0x00F5 # LATIN SMALL LETTER O WITH TILDE
0x9C 0x00FA # LATIN SMALL LETTER U WITH ACUTE
0x9D 0x00F9 # LATIN SMALL LETTER U WITH GRAVE
0x9E 0x00FB # LATIN SMALL LETTER U WITH CIRCUMFLEX
0x9F 0x00FC # LATIN SMALL LETTER U WITH DIAERESIS
0xA0 0x2020 # DAGGER
0xA1 0x00B0 # DEGREE SIGN
0xA2 0x00A2 # CENT SIGN
0xA3 0x00A3 # POUND SIGN
0xA4 0x00A7 # SECTION SIGN
0xA5 0x2022 # BULLET
0xA6 0x00B6 # PILCROW SIGN
0xA7 0x00DF # LATIN SMALL LETTER SHARP S
0xA8 0x00AE # REGISTERED SIGN
0xA9 0x00A9 # COPYRIGHT SIGN
0xAA 0x2122 # TRADE MARK SIGN
0xAB 0x00B4 # ACUTE ACCENT
0xAC 0x00A8 # DIAERESIS
0xAD 0x2260 # NOT EQUAL TO
0xAE 0x00C6 # LATIN CAPITAL LETTER AE
0xAF 0x00D8 # LATIN CAPITAL LETTER O WITH STROKE
0xB0 0x221E # INFINITY
0xB1 0x00B1 # PLUS-MINUS SIGN
0xB2 0x2264 # LESS-THAN OR EQUAL TO
0xB3 0x2265 # GREATER-THAN OR EQUAL TO
0xB4 0x00A5 # YEN SIGN
0xB5 0x00B5 # MICRO SIGN
0xB6 0x2202 # PARTIAL DIFFERENTIAL
0xB7 0x2211 # N-ARY SUMMATION
0xB8 0x220F # N-ARY PRODUCT
0xB9 0x03C0 # GREEK SMALL LETTER PI
0xBA 0x222B # INTEGRAL
0xBB 0x00AA # FEMININE ORDINAL INDICATOR
0xBC 0x00BA # MASCULINE ORDINAL INDICATOR
0xBD 0x03A9 # GREEK CAPITAL LETTER OMEGA
0xBE 0x00E6 # LATIN SMALL LETTER AE
0xBF 0x00F8 # LATIN SMALL LETTER O WITH STROKE
0xC0 0x00BF # INVERTED QUESTION MARK
0xC1 0x00A1 # INVERTED EXCLAMATION MARK
0xC2 0x00AC # NOT SIGN
0xC3 0x221A # SQUARE ROOT
0xC4 0x0192 # LATIN SMALL LETTER F WITH HOOK
0xC5 0x2248 # ALMOST EQUAL TO
0xC6 0x2206 # INCREMENT
0xC7 0x00AB # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
0xC8 0x00BB # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
0xC9 0x2026 # HORIZONTAL ELLIPSIS
0xCA 0x00A0 # NO-BREAK SPACE
0xCB 0x00C0 # LATIN CAPITAL LETTER A WITH GRAVE
0xCC 0x00C3 # LATIN CAPITAL LETTER A WITH TILDE
0xCD 0x00D5 # LATIN CAPITAL LETTER O WITH TILDE
0xCE 0x0152 # LATIN CAPITAL LIGATURE OE
0xCF 0x0153 # LATIN SMALL LIGATURE OE
0xD0 0x2013 # EN DASH
0xD1 0x2014 # EM DASH
0xD2 0x201C # LEFT DOUBLE QUOTATION MARK
0xD3 0x201D # RIGHT DOUBLE QUOTATION MARK
0xD4 0x2018 # LEFT SINGLE QUOTATION MARK
0xD5 0x2019 # RIGHT SINGLE QUOTATION MARK
0xD6 0x00F7 # DIVISION SIGN
0xD7 0x25CA # LOZENGE
0xD8 0x00FF # LATIN SMALL LETTER Y WITH DIAERESIS
0xD9 0x0178 # LATIN CAPITAL LETTER Y WITH DIAERESIS
0xDA 0x2044 # FRACTION SLASH
0xDB 0x20AC # EURO SIGN # before Mac OS 8.5 this was U+00A4 CURRENCY SIGN
0xDC 0x2039 # SINGLE LEFT-POINTING ANGLE QUOTATION MARK
0xDD 0x203A # SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
0xDE 0x0176 # LATIN CAPITAL LETTER Y WITH CIRCUMFLEX
0xDF 0x0177 # LATIN SMALL LETTER Y WITH CIRCUMFLEX
0xE0 0x2021 # DOUBLE DAGGER
0xE1 0x00B7 # MIDDLE DOT
0xE2 0x1EF2 # LATIN CAPITAL LETTER Y WITH GRAVE
0xE3 0x1EF3 # LATIN SMALL LETTER Y WITH GRAVE
0xE4 0x2030 # PER MILLE SIGN
0xE5 0x00C2 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
0xE6 0x00CA # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
0xE7 0x00C1 # LATIN CAPITAL LETTER A WITH ACUTE
0xE8 0x00CB # LATIN CAPITAL LETTER E WITH DIAERESIS
0xE9 0x00C8 # LATIN CAPITAL LETTER E WITH GRAVE
0xEA 0x00CD # LATIN CAPITAL LETTER I WITH ACUTE
0xEB 0x00CE # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
0xEC 0x00CF # LATIN CAPITAL LETTER I WITH DIAERESIS
0xED 0x00CC # LATIN CAPITAL LETTER I WITH GRAVE
0xEE 0x00D3 # LATIN CAPITAL LETTER O WITH ACUTE
0xEF 0x00D4 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
0xF0 0x2663 # BLACK CLUB SUIT = shamrock # future mapping U+2618 SHAMROCK
0xF1 0x00D2 # LATIN CAPITAL LETTER O WITH GRAVE
0xF2 0x00DA # LATIN CAPITAL LETTER U WITH ACUTE
0xF3 0x00DB # LATIN CAPITAL LETTER U WITH CIRCUMFLEX
0xF4 0x00D9 # LATIN CAPITAL LETTER U WITH GRAVE
0xF5 0x0131 # LATIN SMALL LETTER DOTLESS I
0xF6 0x00DD # LATIN CAPITAL LETTER Y WITH ACUTE
0xF7 0x00FD # LATIN SMALL LETTER Y WITH ACUTE
0xF8 0x0174 # LATIN CAPITAL LETTER W WITH CIRCUMFLEX
0xF9 0x0175 # LATIN SMALL LETTER W WITH CIRCUMFLEX
0xFA 0x1E84 # LATIN CAPITAL LETTER W WITH DIAERESIS
0xFB 0x1E85 # LATIN SMALL LETTER W WITH DIAERESIS
0xFC 0x1E80 # LATIN CAPITAL LETTER W WITH GRAVE
0xFD 0x1E81 # LATIN SMALL LETTER W WITH GRAVE
0xFE 0x1E82 # LATIN CAPITAL LETTER W WITH ACUTE
0xFF 0x1E83 # LATIN SMALL LETTER W WITH ACUTE
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,349 @@
#
# Contents: Map (external version) from Mac OS Croatian
# character set to Unicode 2.1 and later.
#
# Copyright: (c) 1995-2002, 2005 by Apple Computer, Inc., all rights
# reserved.
#
# Contact: charsets@apple.com
#
# Changes:
#
# c02 2005-Apr-04 Update header comments. Matches internal xml
# <c1.1> and Text Encoding Converter 2.0.
# b3,c1 2002-Dec-19 Update URLs, notes. Matches internal
# utom<b3>.
# b02 1999-Sep-22 Encoding changed for Mac OS 8.5; change
# mapping of 0xDB from CURRENCY SIGN to EURO
# SIGN. Update contact e-mail address. Matches
# internal utom<b2>, ufrm<b2>, and Text
# Encoding Converter version 1.5.
# n07 1998-Feb-05 Minor update to header comments
# n05 1997-Dec-14 Update to match internal utom<5>, ufrm<16>:
# Change standard mapping for 0xBD from U+2126
# to its canonical decomposition, U+03A9.
# n03 1995-Apr-15 First version (after fixing some typos).
# Matches internal ufrm<6>.
#
# Standard header:
# ----------------
#
# Apple, the Apple logo, and Macintosh are trademarks of Apple
# Computer, Inc., registered in the United States and other countries.
# Unicode is a trademark of Unicode Inc. For the sake of brevity,
# throughout this document, "Macintosh" can be used to refer to
# Macintosh computers and "Unicode" can be used to refer to the
# Unicode standard.
#
# Apple Computer, Inc. ("Apple") makes no warranty or representation,
# either express or implied, with respect to this document and the
# included data, its quality, accuracy, or fitness for a particular
# purpose. In no event will Apple be liable for direct, indirect,
# special, incidental, or consequential damages resulting from any
# defect or inaccuracy in this document or the included data.
#
# These mapping tables and character lists are subject to change.
# The latest tables should be available from the following:
#
# <http://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/>
#
# For general information about Mac OS encodings and these mapping
# tables, see the file "README.TXT".
#
# Format:
# -------
#
# Three tab-separated columns;
# '#' begins a comment which continues to the end of the line.
# Column #1 is the Mac OS Croatian code (in hex as 0xNN)
# Column #2 is the corresponding Unicode (in hex as 0xNNNN)
# Column #3 is a comment containing the Unicode name
#
# The entries are in Mac OS Croatian code order.
#
# One of these mappings requires the use of a corporate character.
# See the file "CORPCHAR.TXT" and notes below.
#
# Control character mappings are not shown in this table, following
# the conventions of the standard UTC mapping tables. However, the
# Mac OS Croatian character set uses the standard control characters
# at 0x00-0x1F and 0x7F.
#
# Notes on Mac OS Croatian:
# -------------------------
#
# This is a legacy Mac OS encoding; in the Mac OS X Carbon and Cocoa
# environments, it is only supported via transcoding to and from
# Unicode.
#
# Mac OS Croatian is used for Croatian and Slovene.
#
# The Mac OS Croatian encoding shares the script code smRoman
# (0) with the standard Mac OS Roman encoding. To determine if
# the Croatian encoding is being used, you must check if the
# system region code is 68, verCroatia (or 25, verYugoCroatian,
# only used in older systems).
#
# This character set is a variant of standard Mac OS Roman
# encoding, adding five accented letter case pairs to handle
# Croatian. It has 20 code point differences from standard
# Mac OS Roman, but only 10 differences in repertoire.
#
# Before Mac OS 8.5, code point 0xDB was CURRENCY SIGN, and was
# mapped to U+00A4. In Mac OS 8.5 and later versions, code point
# 0xDB is changed to EURO SIGN and maps to U+20AC; the standard
# Apple fonts are updated for Mac OS 8.5 to reflect this. There is
# a "currency sign" variant of the Mac OS Croatian encoding that
# still maps 0xDB to U+00A4; this can be used for older fonts.
#
# Unicode mapping issues and notes:
# ---------------------------------
#
# The following corporate zone Unicode character is used in this
# mapping:
#
# 0xF8FF Apple logo
#
# NOTE: The graphic image associated with the Apple logo character
# is not authorized for use without permission of Apple, and
# unauthorized use might constitute trademark infringement.
#
# Details of mapping changes in each version:
# -------------------------------------------
#
# Changes from version n07 to version b02:
#
# - Encoding changed for Mac OS 8.5; change mapping of 0xDB from
# CURRENCY SIGN (U+00A4) to EURO SIGN (U+20AC).
#
# Changes from version n03 to version n05:
#
# - Change mapping of 0xBD from U+2126 to its canonical
# decomposition, U+03A9.
#
##################
0x20 0x0020 # SPACE
0x21 0x0021 # EXCLAMATION MARK
0x22 0x0022 # QUOTATION MARK
0x23 0x0023 # NUMBER SIGN
0x24 0x0024 # DOLLAR SIGN
0x25 0x0025 # PERCENT SIGN
0x26 0x0026 # AMPERSAND
0x27 0x0027 # APOSTROPHE
0x28 0x0028 # LEFT PARENTHESIS
0x29 0x0029 # RIGHT PARENTHESIS
0x2A 0x002A # ASTERISK
0x2B 0x002B # PLUS SIGN
0x2C 0x002C # COMMA
0x2D 0x002D # HYPHEN-MINUS
0x2E 0x002E # FULL STOP
0x2F 0x002F # SOLIDUS
0x30 0x0030 # DIGIT ZERO
0x31 0x0031 # DIGIT ONE
0x32 0x0032 # DIGIT TWO
0x33 0x0033 # DIGIT THREE
0x34 0x0034 # DIGIT FOUR
0x35 0x0035 # DIGIT FIVE
0x36 0x0036 # DIGIT SIX
0x37 0x0037 # DIGIT SEVEN
0x38 0x0038 # DIGIT EIGHT
0x39 0x0039 # DIGIT NINE
0x3A 0x003A # COLON
0x3B 0x003B # SEMICOLON
0x3C 0x003C # LESS-THAN SIGN
0x3D 0x003D # EQUALS SIGN
0x3E 0x003E # GREATER-THAN SIGN
0x3F 0x003F # QUESTION MARK
0x40 0x0040 # COMMERCIAL AT
0x41 0x0041 # LATIN CAPITAL LETTER A
0x42 0x0042 # LATIN CAPITAL LETTER B
0x43 0x0043 # LATIN CAPITAL LETTER C
0x44 0x0044 # LATIN CAPITAL LETTER D
0x45 0x0045 # LATIN CAPITAL LETTER E
0x46 0x0046 # LATIN CAPITAL LETTER F
0x47 0x0047 # LATIN CAPITAL LETTER G
0x48 0x0048 # LATIN CAPITAL LETTER H
0x49 0x0049 # LATIN CAPITAL LETTER I
0x4A 0x004A # LATIN CAPITAL LETTER J
0x4B 0x004B # LATIN CAPITAL LETTER K
0x4C 0x004C # LATIN CAPITAL LETTER L
0x4D 0x004D # LATIN CAPITAL LETTER M
0x4E 0x004E # LATIN CAPITAL LETTER N
0x4F 0x004F # LATIN CAPITAL LETTER O
0x50 0x0050 # LATIN CAPITAL LETTER P
0x51 0x0051 # LATIN CAPITAL LETTER Q
0x52 0x0052 # LATIN CAPITAL LETTER R
0x53 0x0053 # LATIN CAPITAL LETTER S
0x54 0x0054 # LATIN CAPITAL LETTER T
0x55 0x0055 # LATIN CAPITAL LETTER U
0x56 0x0056 # LATIN CAPITAL LETTER V
0x57 0x0057 # LATIN CAPITAL LETTER W
0x58 0x0058 # LATIN CAPITAL LETTER X
0x59 0x0059 # LATIN CAPITAL LETTER Y
0x5A 0x005A # LATIN CAPITAL LETTER Z
0x5B 0x005B # LEFT SQUARE BRACKET
0x5C 0x005C # REVERSE SOLIDUS
0x5D 0x005D # RIGHT SQUARE BRACKET
0x5E 0x005E # CIRCUMFLEX ACCENT
0x5F 0x005F # LOW LINE
0x60 0x0060 # GRAVE ACCENT
0x61 0x0061 # LATIN SMALL LETTER A
0x62 0x0062 # LATIN SMALL LETTER B
0x63 0x0063 # LATIN SMALL LETTER C
0x64 0x0064 # LATIN SMALL LETTER D
0x65 0x0065 # LATIN SMALL LETTER E
0x66 0x0066 # LATIN SMALL LETTER F
0x67 0x0067 # LATIN SMALL LETTER G
0x68 0x0068 # LATIN SMALL LETTER H
0x69 0x0069 # LATIN SMALL LETTER I
0x6A 0x006A # LATIN SMALL LETTER J
0x6B 0x006B # LATIN SMALL LETTER K
0x6C 0x006C # LATIN SMALL LETTER L
0x6D 0x006D # LATIN SMALL LETTER M
0x6E 0x006E # LATIN SMALL LETTER N
0x6F 0x006F # LATIN SMALL LETTER O
0x70 0x0070 # LATIN SMALL LETTER P
0x71 0x0071 # LATIN SMALL LETTER Q
0x72 0x0072 # LATIN SMALL LETTER R
0x73 0x0073 # LATIN SMALL LETTER S
0x74 0x0074 # LATIN SMALL LETTER T
0x75 0x0075 # LATIN SMALL LETTER U
0x76 0x0076 # LATIN SMALL LETTER V
0x77 0x0077 # LATIN SMALL LETTER W
0x78 0x0078 # LATIN SMALL LETTER X
0x79 0x0079 # LATIN SMALL LETTER Y
0x7A 0x007A # LATIN SMALL LETTER Z
0x7B 0x007B # LEFT CURLY BRACKET
0x7C 0x007C # VERTICAL LINE
0x7D 0x007D # RIGHT CURLY BRACKET
0x7E 0x007E # TILDE
#
0x80 0x00C4 # LATIN CAPITAL LETTER A WITH DIAERESIS
0x81 0x00C5 # LATIN CAPITAL LETTER A WITH RING ABOVE
0x82 0x00C7 # LATIN CAPITAL LETTER C WITH CEDILLA
0x83 0x00C9 # LATIN CAPITAL LETTER E WITH ACUTE
0x84 0x00D1 # LATIN CAPITAL LETTER N WITH TILDE
0x85 0x00D6 # LATIN CAPITAL LETTER O WITH DIAERESIS
0x86 0x00DC # LATIN CAPITAL LETTER U WITH DIAERESIS
0x87 0x00E1 # LATIN SMALL LETTER A WITH ACUTE
0x88 0x00E0 # LATIN SMALL LETTER A WITH GRAVE
0x89 0x00E2 # LATIN SMALL LETTER A WITH CIRCUMFLEX
0x8A 0x00E4 # LATIN SMALL LETTER A WITH DIAERESIS
0x8B 0x00E3 # LATIN SMALL LETTER A WITH TILDE
0x8C 0x00E5 # LATIN SMALL LETTER A WITH RING ABOVE
0x8D 0x00E7 # LATIN SMALL LETTER C WITH CEDILLA
0x8E 0x00E9 # LATIN SMALL LETTER E WITH ACUTE
0x8F 0x00E8 # LATIN SMALL LETTER E WITH GRAVE
0x90 0x00EA # LATIN SMALL LETTER E WITH CIRCUMFLEX
0x91 0x00EB # LATIN SMALL LETTER E WITH DIAERESIS
0x92 0x00ED # LATIN SMALL LETTER I WITH ACUTE
0x93 0x00EC # LATIN SMALL LETTER I WITH GRAVE
0x94 0x00EE # LATIN SMALL LETTER I WITH CIRCUMFLEX
0x95 0x00EF # LATIN SMALL LETTER I WITH DIAERESIS
0x96 0x00F1 # LATIN SMALL LETTER N WITH TILDE
0x97 0x00F3 # LATIN SMALL LETTER O WITH ACUTE
0x98 0x00F2 # LATIN SMALL LETTER O WITH GRAVE
0x99 0x00F4 # LATIN SMALL LETTER O WITH CIRCUMFLEX
0x9A 0x00F6 # LATIN SMALL LETTER O WITH DIAERESIS
0x9B 0x00F5 # LATIN SMALL LETTER O WITH TILDE
0x9C 0x00FA # LATIN SMALL LETTER U WITH ACUTE
0x9D 0x00F9 # LATIN SMALL LETTER U WITH GRAVE
0x9E 0x00FB # LATIN SMALL LETTER U WITH CIRCUMFLEX
0x9F 0x00FC # LATIN SMALL LETTER U WITH DIAERESIS
0xA0 0x2020 # DAGGER
0xA1 0x00B0 # DEGREE SIGN
0xA2 0x00A2 # CENT SIGN
0xA3 0x00A3 # POUND SIGN
0xA4 0x00A7 # SECTION SIGN
0xA5 0x2022 # BULLET
0xA6 0x00B6 # PILCROW SIGN
0xA7 0x00DF # LATIN SMALL LETTER SHARP S
0xA8 0x00AE # REGISTERED SIGN
0xA9 0x0160 # LATIN CAPITAL LETTER S WITH CARON
0xAA 0x2122 # TRADE MARK SIGN
0xAB 0x00B4 # ACUTE ACCENT
0xAC 0x00A8 # DIAERESIS
0xAD 0x2260 # NOT EQUAL TO
0xAE 0x017D # LATIN CAPITAL LETTER Z WITH CARON
0xAF 0x00D8 # LATIN CAPITAL LETTER O WITH STROKE
0xB0 0x221E # INFINITY
0xB1 0x00B1 # PLUS-MINUS SIGN
0xB2 0x2264 # LESS-THAN OR EQUAL TO
0xB3 0x2265 # GREATER-THAN OR EQUAL TO
0xB4 0x2206 # INCREMENT
0xB5 0x00B5 # MICRO SIGN
0xB6 0x2202 # PARTIAL DIFFERENTIAL
0xB7 0x2211 # N-ARY SUMMATION
0xB8 0x220F # N-ARY PRODUCT
0xB9 0x0161 # LATIN SMALL LETTER S WITH CARON
0xBA 0x222B # INTEGRAL
0xBB 0x00AA # FEMININE ORDINAL INDICATOR
0xBC 0x00BA # MASCULINE ORDINAL INDICATOR
0xBD 0x03A9 # GREEK CAPITAL LETTER OMEGA
0xBE 0x017E # LATIN SMALL LETTER Z WITH CARON
0xBF 0x00F8 # LATIN SMALL LETTER O WITH STROKE
0xC0 0x00BF # INVERTED QUESTION MARK
0xC1 0x00A1 # INVERTED EXCLAMATION MARK
0xC2 0x00AC # NOT SIGN
0xC3 0x221A # SQUARE ROOT
0xC4 0x0192 # LATIN SMALL LETTER F WITH HOOK
0xC5 0x2248 # ALMOST EQUAL TO
0xC6 0x0106 # LATIN CAPITAL LETTER C WITH ACUTE
0xC7 0x00AB # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
0xC8 0x010C # LATIN CAPITAL LETTER C WITH CARON
0xC9 0x2026 # HORIZONTAL ELLIPSIS
0xCA 0x00A0 # NO-BREAK SPACE
0xCB 0x00C0 # LATIN CAPITAL LETTER A WITH GRAVE
0xCC 0x00C3 # LATIN CAPITAL LETTER A WITH TILDE
0xCD 0x00D5 # LATIN CAPITAL LETTER O WITH TILDE
0xCE 0x0152 # LATIN CAPITAL LIGATURE OE
0xCF 0x0153 # LATIN SMALL LIGATURE OE
0xD0 0x0110 # LATIN CAPITAL LETTER D WITH STROKE
0xD1 0x2014 # EM DASH
0xD2 0x201C # LEFT DOUBLE QUOTATION MARK
0xD3 0x201D # RIGHT DOUBLE QUOTATION MARK
0xD4 0x2018 # LEFT SINGLE QUOTATION MARK
0xD5 0x2019 # RIGHT SINGLE QUOTATION MARK
0xD6 0x00F7 # DIVISION SIGN
0xD7 0x25CA # LOZENGE
0xD8 0xF8FF # Apple logo
0xD9 0x00A9 # COPYRIGHT SIGN
0xDA 0x2044 # FRACTION SLASH
0xDB 0x20AC # EURO SIGN
0xDC 0x2039 # SINGLE LEFT-POINTING ANGLE QUOTATION MARK
0xDD 0x203A # SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
0xDE 0x00C6 # LATIN CAPITAL LETTER AE
0xDF 0x00BB # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
0xE0 0x2013 # EN DASH
0xE1 0x00B7 # MIDDLE DOT
0xE2 0x201A # SINGLE LOW-9 QUOTATION MARK
0xE3 0x201E # DOUBLE LOW-9 QUOTATION MARK
0xE4 0x2030 # PER MILLE SIGN
0xE5 0x00C2 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
0xE6 0x0107 # LATIN SMALL LETTER C WITH ACUTE
0xE7 0x00C1 # LATIN CAPITAL LETTER A WITH ACUTE
0xE8 0x010D # LATIN SMALL LETTER C WITH CARON
0xE9 0x00C8 # LATIN CAPITAL LETTER E WITH GRAVE
0xEA 0x00CD # LATIN CAPITAL LETTER I WITH ACUTE
0xEB 0x00CE # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
0xEC 0x00CF # LATIN CAPITAL LETTER I WITH DIAERESIS
0xED 0x00CC # LATIN CAPITAL LETTER I WITH GRAVE
0xEE 0x00D3 # LATIN CAPITAL LETTER O WITH ACUTE
0xEF 0x00D4 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
0xF0 0x0111 # LATIN SMALL LETTER D WITH STROKE
0xF1 0x00D2 # LATIN CAPITAL LETTER O WITH GRAVE
0xF2 0x00DA # LATIN CAPITAL LETTER U WITH ACUTE
0xF3 0x00DB # LATIN CAPITAL LETTER U WITH CIRCUMFLEX
0xF4 0x00D9 # LATIN CAPITAL LETTER U WITH GRAVE
0xF5 0x0131 # LATIN SMALL LETTER DOTLESS I
0xF6 0x02C6 # MODIFIER LETTER CIRCUMFLEX ACCENT
0xF7 0x02DC # SMALL TILDE
0xF8 0x00AF # MACRON
0xF9 0x03C0 # GREEK SMALL LETTER PI
0xFA 0x00CB # LATIN CAPITAL LETTER E WITH DIAERESIS
0xFB 0x02DA # RING ABOVE
0xFC 0x00B8 # CEDILLA
0xFD 0x00CA # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
0xFE 0x00E6 # LATIN SMALL LETTER AE
0xFF 0x02C7 # CARON
@@ -0,0 +1,519 @@
#
# Contents: Map (external version) from Mac OS Farsi
# character set to Unicode 2.1 and later.
#
# Copyright: (c) 1997-2002, 2005 by Apple Computer, Inc., all rights
# reserved.
#
# Contact: charsets@apple.com
#
# Changes:
#
# c02 2005-Apr-05 Update header comments. Matches internal xml
# <c1.1> and Text Encoding Converter 2.0.
# b3,c1 2002-Dec-19 Add comments about character display and
# direction overrides. Update URLs, notes.
# Matches internal utom<b3>.
# b02 1999-Sep-22 Update contact e-mail address. Matches
# internal utom<b1>, ufrm<b1>, and Text
# Encoding Converter version 1.5.
# n04 1998-Feb-05 Show required Unicode character
# directionality in a different way. Matches
# internal utom<n3>, ufrm<n9>, and Text
# Encoding Converter version 1.3. Update
# header comments; include information on
# loose mapping of digits, and changes to
# mapping for the TrueType variant.
# n01 1997-Jul-17 First version. Matches internal utom<n1>,
# ufrm<n2>.
#
# Standard header:
# ----------------
#
# Apple, the Apple logo, and Macintosh are trademarks of Apple
# Computer, Inc., registered in the United States and other countries.
# Unicode is a trademark of Unicode Inc. For the sake of brevity,
# throughout this document, "Macintosh" can be used to refer to
# Macintosh computers and "Unicode" can be used to refer to the
# Unicode standard.
#
# Apple Computer, Inc. ("Apple") makes no warranty or representation,
# either express or implied, with respect to this document and the
# included data, its quality, accuracy, or fitness for a particular
# purpose. In no event will Apple be liable for direct, indirect,
# special, incidental, or consequential damages resulting from any
# defect or inaccuracy in this document or the included data.
#
# These mapping tables and character lists are subject to change.
# The latest tables should be available from the following:
#
# <http://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/>
#
# For general information about Mac OS encodings and these mapping
# tables, see the file "README.TXT".
#
# Format:
# -------
#
# Three tab-separated columns;
# '#' begins a comment which continues to the end of the line.
# Column #1 is the Mac OS Farsi code (in hex as 0xNN)
# Column #2 is the corresponding Unicode (in hex as 0xNNNN),
# possibly preceded by a tag indicating required directionality
# (i.e. <LR>+0xNNNN or <RL>+0xNNNN).
# Column #3 is a comment containing the Unicode name.
#
# The entries are in Mac OS Farsi code order.
#
# Control character mappings are not shown in this table, following
# the conventions of the standard UTC mapping tables. However, the
# Mac OS Farsi character set uses the standard control characters at
# 0x00-0x1F and 0x7F.
#
# Notes on Mac OS Farsi:
# ----------------------
#
# This is a legacy Mac OS encoding; in the Mac OS X Carbon and Cocoa
# environments, it is only supported via transcoding to and from
# Unicode.
#
# 1. General
#
# The Mac OS Farsi character set is based on the Mac OS Arabic
# character set. The main difference is in the right-to-left digits
# 0xB0-0xB9: For Mac OS Arabic these correspond to right-left
# versions of the Unicode ARABIC-INDIC DIGITs 0660-0669; for
# Mac OS Farsi these correspond to right-left versions of the
# Unicode EXTENDED ARABIC-INDIC DIGITs 06F0-06F9. The other
# difference is in the nature of the font variants.
#
# For more information, see the comments in the mapping table for
# Mac OS Arabic.
#
# Mac OS Farsi characters 0xEB-0xF2 are non-spacing/combining marks.
#
# 2. Directional characters and roundtrip fidelity
#
# The Mac OS Arabic character set (on which Mac OS Farsi is based)
# was developed in 1986-1987. At that time the bidirectional line
# layout algorithm used in the Mac OS Arabic system was fairly simple;
# it used only a few direction classes (instead of the 19 now used in
# the Unicode bidirectional algorithm). In order to permit users to
# handle some tricky layout problems, certain punctuation and symbol
# characters were encoded twice, one with a left-right direction
# attribute and the other with a right-left direction attribute. This
# is the case in Mac OS Farsi too.
#
# For example, plus sign is encoded at 0x2B with a left-right
# attribute, and at 0xAB with a right-left attribute. However, there
# is only one PLUS SIGN character in Unicode. This leads to some
# interesting problems when mapping between Mac OS Farsi and Unicode;
# see below.
#
# A related problem is that even when a particular character is
# encoded only once in Mac OS Farsi, it may have a different
# direction attribute than the corresponding Unicode character.
#
# For example, the Mac OS Farsi character at 0x93 is HORIZONTAL
# ELLIPSIS with strong right-left direction. However, the Unicode
# character HORIZONTAL ELLIPSIS has direction class neutral.
#
# 3. Behavior of ASCII-range numbers in WorldScript
#
# Mac OS Farsi also has two sets of digit codes.
# The digits at 0x30-0x39 may be displayed using either European
# digit forms or Persian digit forms, depending on context. If there
# is a "strong European" character such as a Latin letter on either
# side of a sequence consisting of digits 0x30-0x39 and possibly comma
# 0x2C or period 0x2E, then the characters will be displayed using
# European forms (This will happen even if there are neutral characters
# between the digits and the strong European character). Otherwise, the
# digits will be displayed using Persian forms, the comma will be
# displayed as Arabic thousands separator, and the period as Arabic
# decimal separator. In any case, 0x2C, 0x2E, and 0x30-0x39 are always
# left-right.
#
# The digits at 0xB0-0xB9 are always displayed using Persian digit
# shapes, and moreover, these digits always have strong right-left
# directionality. These are mainly intended for special layout
# purposes such as part numbers, etc.
#
# 4. Font variants
#
# The table in this file gives the Unicode mappings for the standard
# Mac OS Farsi encoding. This encoding is supported by the Tehran font
# (the system font for Farsi), and is the encoding supported by the
# text processing utilities. However, the other Farsi fonts actually
# implement a somewhat different encoding; this affects nine code
# points including 0xAA and 0xC0 (which are also affected by font
# variants in Mac OS Arabic). For these nine code points the standard
# Mac OS Farsi encoding has the following mappings:
# 0x8B -> 0x06BA ARABIC LETTER NOON GHUNNA (Urdu)
# 0xA4 -> <RL>+0x0024 DOLLAR SIGN, right-left
# 0xAA -> <RL>+0x002A ASTERISK, right-left
# 0xC0 -> <RL>+0x274A EIGHT TEARDROP-SPOKED PROPELLER ASTERISK,
# right-left
# 0xF4 -> 0x0679 ARABIC LETTER TTEH (Urdu)
# 0xF7 -> 0x06A4 ARABIC LETTER VEH (for transliteration)
# 0xF9 -> 0x0688 ARABIC LETTER DDAL (Urdu)
# 0xFA -> 0x0691 ARABIC LETTER RREH (Urdu)
# 0xFF -> 0x06D2 ARABIC LETTER YEH BARREE (Urdu)
#
# The TrueType variant is used for the Farsi TrueType fonts: Ashfahan,
# Amir, Kamran, Mashad, NadeemFarsi. It differs from the standard
# variant in the following ways:
# 0x8B -> 0xF882 Arabic ligature "peace on him" (corporate char.)
# 0xA4 -> 0xFDFC RIAL SIGN (added in Unicode 3.2)
# 0xAA -> <RL>+0x00D7 MULTIPLICATION SIGN, right-left
# 0xC0 -> <RL>+0x002A ASTERISK, right-left
# 0xF4 -> <RL>+0x00B0 DEGREE SIGN, right-left
# 0xF7 -> 0xFDFA ARABIC LIGATURE SALLALLAHOU ALAYHE WASALLAM
# 0xF9 -> <RL>+0x25CF BLACK CIRCLE, right-left
# 0xFA -> <RL>+0x25A0 BLACK SQUARE, right-left
# 0xFF -> <RL>+0x25B2 BLACK UP-POINTING TRIANGLE, right-left
#
# Unicode mapping issues and notes:
# ---------------------------------
#
# 1. Matching the direction of Mac OS Farsi characters
#
# When Mac OS Farsi encodes a character twice but with different
# direction attributes for the two code points - as in the case of
# plus sign mentioned above - we need a way to map both Mac OS Farsi
# code points to Unicode and back again without loss of information.
# With the plus sign, for example, mapping one of the Mac OS Farsi
# characters to a code in the Unicode corporate use zone is
# undesirable, since both of the plus sign characters are likely to
# be used in text that is interchanged.
#
# The problem is solved with the use of direction override characters
# and direction-dependent mappings. When mapping from Mac OS Farsi
# to Unicode, we use direction overrides as necessary to force the
# direction of the resulting Unicode characters.
#
# The required direction is indicated by a direction tag in the
# mappings. A tag of <LR> means the corresponding Unicode character
# must have a strong left-right context, and a tag of <RL> indicates
# a right-left context.
#
# For example, the mapping of 0x2B is given as <LR>+0x002B; the
# mapping of 0xAB is given as <RL>+0x002B. If we map an isolated
# instance of 0x2B to Unicode, it should be mapped as follows (LRO
# indicates LEFT-RIGHT OVERRIDE, PDF indicates POP DIRECTION
# FORMATTING):
#
# 0x2B -> 0x202D (LRO) + 0x002B (PLUS SIGN) + 0x202C (PDF)
#
# When mapping several characters in a row that require direction
# forcing, the overrides need only be used at the beginning and end.
# For example:
#
# 0x24 0x20 0x28 0x29 -> 0x202D 0x0024 0x0020 0x0028 0x0029 0x202C
#
# If neutral characters that require direction forcing are already
# between strong-direction characters with matching directionality,
# then direction overrides need not be used. Direction overrides are
# always needed to map the right-left digits at 0xB0-0xB9.
#
# When mapping from Unicode to Mac OS Farsi, the Unicode
# bidirectional algorithm should be used to determine resolved
# direction of the Unicode characters. The mapping from Unicode to
# Mac OS Farsi can then be disambiguated by the use of the resolved
# direction:
#
# Unicode 0x002B -> Mac OS Farsi 0x2B (if L) or 0xAB (if R)
#
# However, this also means the direction override characters should
# be discarded when mapping from Unicode to Mac OS Farsi (after
# they have been used to determine resolved direction), since the
# direction override information is carried by the code point itself.
#
# Even when direction overrides are not needed for roundtrip
# fidelity, they are sometimes used when mapping Mac OS Farsi
# characters to Unicode in order to achieve similar text layout with
# the resulting Unicode text. For example, the single Mac OS Farsi
# ellipsis character has direction class right-left,and there is no
# left-right version. However, the Unicode HORIZONTAL ELLIPSIS
# character has direction class neutral (which means it may end up
# with a resolved direction of left-right if surrounded by left-right
# characters). When mapping the Mac OS Farsi ellipsis to Unicode, it
# is surrounded with a direction override to help preserve proper
# text layout. The resolved direction is not needed or used when
# mapping the Unicode HORIZONTAL ELLIPSIS back to Mac OS Farsi.
#
# 2. Mapping the Mac OS Farsi digits
#
# The main table below contains mappings that should be used when
# strict round-trip fidelity is required. However, for numeric
# values, the mappings in that table will produce Unicode characters
# that may appear different than the Mac OS Farsi text displayed on
# a Mac OS system using WorldScript. This is because WorldScript
# uses context-dependent display for the 0x30-0x39 digits.
#
# If roundtrip fidelity is not required, then the following
# alternate mappings should be used when a sequence of 0x30-0x39
# digits - possibly including 0x2C and 0x2E - occurs in an Arabic
# context (that is, when the first "strong" character on either side
# of the digit sequence is Arabic, or there is no strong character):
#
# 0x2C 0x066C # ARABIC THOUSANDS SEPARATOR
# 0x2E 0x066B # ARABIC DECIMAL SEPARATOR
# 0x30 0x06F0 # EXTENDED ARABIC-INDIC DIGIT ZERO
# 0x31 0x06F1 # EXTENDED ARABIC-INDIC DIGIT ONE
# 0x32 0x06F2 # EXTENDED ARABIC-INDIC DIGIT TWO
# 0x33 0x06F3 # EXTENDED ARABIC-INDIC DIGIT THREE
# 0x34 0x06F4 # EXTENDED ARABIC-INDIC DIGIT FOUR
# 0x35 0x06F5 # EXTENDED ARABIC-INDIC DIGIT FIVE
# 0x36 0x06F6 # EXTENDED ARABIC-INDIC DIGIT SIX
# 0x37 0x06F7 # EXTENDED ARABIC-INDIC DIGIT SEVEN
# 0x38 0x06F8 # EXTENDED ARABIC-INDIC DIGIT EIGHT
# 0x39 0x06F9 # EXTENDED ARABIC-INDIC DIGIT NINE
#
# 3. Use of corporate-zone Unicodes (mapping the TrueType variant)
#
# The following corporate zone Unicode character is used in this
# mapping:
#
# 0xF882 Arabic ligature "peace on him"
#
# Details of mapping changes in each version:
# -------------------------------------------
#
# Changes from version b02 to version b03/c01:
#
# - Update mapping of 0xA4 in TrueType variant to use new Unicode
# character U+FDFC RIAL SIGN addded for Unicode 3.2
#
# Changes from version n01 to version n04:
#
# - Change mapping of 0xA4 in TrueType variant (just described in
# header comment) from single corporate character to use
# grouping hint
#
##################
0x20 <LR>+0x0020 # SPACE, left-right
0x21 <LR>+0x0021 # EXCLAMATION MARK, left-right
0x22 <LR>+0x0022 # QUOTATION MARK, left-right
0x23 <LR>+0x0023 # NUMBER SIGN, left-right
0x24 <LR>+0x0024 # DOLLAR SIGN, left-right
0x25 <LR>+0x0025 # PERCENT SIGN, left-right
0x26 <LR>+0x0026 # AMPERSAND, left-right
0x27 <LR>+0x0027 # APOSTROPHE, left-right
0x28 <LR>+0x0028 # LEFT PARENTHESIS, left-right
0x29 <LR>+0x0029 # RIGHT PARENTHESIS, left-right
0x2A <LR>+0x002A # ASTERISK, left-right
0x2B <LR>+0x002B # PLUS SIGN, left-right
0x2C <LR>+0x002C # COMMA, left-right; in Arabic-script context, displayed as 0x066C ARABIC THOUSANDS SEPARATOR
0x2D <LR>+0x002D # HYPHEN-MINUS, left-right
0x2E <LR>+0x002E # FULL STOP, left-right; in Arabic-script context, displayed as 0x066B ARABIC DECIMAL SEPARATOR
0x2F <LR>+0x002F # SOLIDUS, left-right
0x30 0x0030 # DIGIT ZERO; in Arabic-script context, displayed as 0x06F0 EXTENDED ARABIC-INDIC DIGIT ZERO
0x31 0x0031 # DIGIT ONE; in Arabic-script context, displayed as 0x06F1 EXTENDED ARABIC-INDIC DIGIT ONE
0x32 0x0032 # DIGIT TWO; in Arabic-script context, displayed as 0x06F2 EXTENDED ARABIC-INDIC DIGIT TWO
0x33 0x0033 # DIGIT THREE; in Arabic-script context, displayed as 0x06F3 EXTENDED ARABIC-INDIC DIGIT THREE
0x34 0x0034 # DIGIT FOUR; in Arabic-script context, displayed as 0x06F4 EXTENDED ARABIC-INDIC DIGIT FOUR
0x35 0x0035 # DIGIT FIVE; in Arabic-script context, displayed as 0x06F5 EXTENDED ARABIC-INDIC DIGIT FIVE
0x36 0x0036 # DIGIT SIX; in Arabic-script context, displayed as 0x06F6 EXTENDED ARABIC-INDIC DIGIT SIX
0x37 0x0037 # DIGIT SEVEN; in Arabic-script context, displayed as 0x06F7 EXTENDED ARABIC-INDIC DIGIT SEVEN
0x38 0x0038 # DIGIT EIGHT; in Arabic-script context, displayed as 0x06F8 EXTENDED ARABIC-INDIC DIGIT EIGHT
0x39 0x0039 # DIGIT NINE; in Arabic-script context, displayed as 0x06F9 EXTENDED ARABIC-INDIC DIGIT NINE
0x3A <LR>+0x003A # COLON, left-right
0x3B <LR>+0x003B # SEMICOLON, left-right
0x3C <LR>+0x003C # LESS-THAN SIGN, left-right
0x3D <LR>+0x003D # EQUALS SIGN, left-right
0x3E <LR>+0x003E # GREATER-THAN SIGN, left-right
0x3F <LR>+0x003F # QUESTION MARK, left-right
0x40 0x0040 # COMMERCIAL AT
0x41 0x0041 # LATIN CAPITAL LETTER A
0x42 0x0042 # LATIN CAPITAL LETTER B
0x43 0x0043 # LATIN CAPITAL LETTER C
0x44 0x0044 # LATIN CAPITAL LETTER D
0x45 0x0045 # LATIN CAPITAL LETTER E
0x46 0x0046 # LATIN CAPITAL LETTER F
0x47 0x0047 # LATIN CAPITAL LETTER G
0x48 0x0048 # LATIN CAPITAL LETTER H
0x49 0x0049 # LATIN CAPITAL LETTER I
0x4A 0x004A # LATIN CAPITAL LETTER J
0x4B 0x004B # LATIN CAPITAL LETTER K
0x4C 0x004C # LATIN CAPITAL LETTER L
0x4D 0x004D # LATIN CAPITAL LETTER M
0x4E 0x004E # LATIN CAPITAL LETTER N
0x4F 0x004F # LATIN CAPITAL LETTER O
0x50 0x0050 # LATIN CAPITAL LETTER P
0x51 0x0051 # LATIN CAPITAL LETTER Q
0x52 0x0052 # LATIN CAPITAL LETTER R
0x53 0x0053 # LATIN CAPITAL LETTER S
0x54 0x0054 # LATIN CAPITAL LETTER T
0x55 0x0055 # LATIN CAPITAL LETTER U
0x56 0x0056 # LATIN CAPITAL LETTER V
0x57 0x0057 # LATIN CAPITAL LETTER W
0x58 0x0058 # LATIN CAPITAL LETTER X
0x59 0x0059 # LATIN CAPITAL LETTER Y
0x5A 0x005A # LATIN CAPITAL LETTER Z
0x5B <LR>+0x005B # LEFT SQUARE BRACKET, left-right
0x5C <LR>+0x005C # REVERSE SOLIDUS, left-right
0x5D <LR>+0x005D # RIGHT SQUARE BRACKET, left-right
0x5E <LR>+0x005E # CIRCUMFLEX ACCENT, left-right
0x5F <LR>+0x005F # LOW LINE, left-right
0x60 0x0060 # GRAVE ACCENT
0x61 0x0061 # LATIN SMALL LETTER A
0x62 0x0062 # LATIN SMALL LETTER B
0x63 0x0063 # LATIN SMALL LETTER C
0x64 0x0064 # LATIN SMALL LETTER D
0x65 0x0065 # LATIN SMALL LETTER E
0x66 0x0066 # LATIN SMALL LETTER F
0x67 0x0067 # LATIN SMALL LETTER G
0x68 0x0068 # LATIN SMALL LETTER H
0x69 0x0069 # LATIN SMALL LETTER I
0x6A 0x006A # LATIN SMALL LETTER J
0x6B 0x006B # LATIN SMALL LETTER K
0x6C 0x006C # LATIN SMALL LETTER L
0x6D 0x006D # LATIN SMALL LETTER M
0x6E 0x006E # LATIN SMALL LETTER N
0x6F 0x006F # LATIN SMALL LETTER O
0x70 0x0070 # LATIN SMALL LETTER P
0x71 0x0071 # LATIN SMALL LETTER Q
0x72 0x0072 # LATIN SMALL LETTER R
0x73 0x0073 # LATIN SMALL LETTER S
0x74 0x0074 # LATIN SMALL LETTER T
0x75 0x0075 # LATIN SMALL LETTER U
0x76 0x0076 # LATIN SMALL LETTER V
0x77 0x0077 # LATIN SMALL LETTER W
0x78 0x0078 # LATIN SMALL LETTER X
0x79 0x0079 # LATIN SMALL LETTER Y
0x7A 0x007A # LATIN SMALL LETTER Z
0x7B <LR>+0x007B # LEFT CURLY BRACKET, left-right
0x7C <LR>+0x007C # VERTICAL LINE, left-right
0x7D <LR>+0x007D # RIGHT CURLY BRACKET, left-right
0x7E 0x007E # TILDE
#
0x80 0x00C4 # LATIN CAPITAL LETTER A WITH DIAERESIS
0x81 <RL>+0x00A0 # NO-BREAK SPACE, right-left
0x82 0x00C7 # LATIN CAPITAL LETTER C WITH CEDILLA
0x83 0x00C9 # LATIN CAPITAL LETTER E WITH ACUTE
0x84 0x00D1 # LATIN CAPITAL LETTER N WITH TILDE
0x85 0x00D6 # LATIN CAPITAL LETTER O WITH DIAERESIS
0x86 0x00DC # LATIN CAPITAL LETTER U WITH DIAERESIS
0x87 0x00E1 # LATIN SMALL LETTER A WITH ACUTE
0x88 0x00E0 # LATIN SMALL LETTER A WITH GRAVE
0x89 0x00E2 # LATIN SMALL LETTER A WITH CIRCUMFLEX
0x8A 0x00E4 # LATIN SMALL LETTER A WITH DIAERESIS
0x8B 0x06BA # ARABIC LETTER NOON GHUNNA
0x8C <RL>+0x00AB # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK, right-left
0x8D 0x00E7 # LATIN SMALL LETTER C WITH CEDILLA
0x8E 0x00E9 # LATIN SMALL LETTER E WITH ACUTE
0x8F 0x00E8 # LATIN SMALL LETTER E WITH GRAVE
0x90 0x00EA # LATIN SMALL LETTER E WITH CIRCUMFLEX
0x91 0x00EB # LATIN SMALL LETTER E WITH DIAERESIS
0x92 0x00ED # LATIN SMALL LETTER I WITH ACUTE
0x93 <RL>+0x2026 # HORIZONTAL ELLIPSIS, right-left
0x94 0x00EE # LATIN SMALL LETTER I WITH CIRCUMFLEX
0x95 0x00EF # LATIN SMALL LETTER I WITH DIAERESIS
0x96 0x00F1 # LATIN SMALL LETTER N WITH TILDE
0x97 0x00F3 # LATIN SMALL LETTER O WITH ACUTE
0x98 <RL>+0x00BB # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK, right-left
0x99 0x00F4 # LATIN SMALL LETTER O WITH CIRCUMFLEX
0x9A 0x00F6 # LATIN SMALL LETTER O WITH DIAERESIS
0x9B <RL>+0x00F7 # DIVISION SIGN, right-left
0x9C 0x00FA # LATIN SMALL LETTER U WITH ACUTE
0x9D 0x00F9 # LATIN SMALL LETTER U WITH GRAVE
0x9E 0x00FB # LATIN SMALL LETTER U WITH CIRCUMFLEX
0x9F 0x00FC # LATIN SMALL LETTER U WITH DIAERESIS
0xA0 <RL>+0x0020 # SPACE, right-left
0xA1 <RL>+0x0021 # EXCLAMATION MARK, right-left
0xA2 <RL>+0x0022 # QUOTATION MARK, right-left
0xA3 <RL>+0x0023 # NUMBER SIGN, right-left
0xA4 <RL>+0x0024 # DOLLAR SIGN, right-left
0xA5 0x066A # ARABIC PERCENT SIGN
0xA6 <RL>+0x0026 # AMPERSAND, right-left
0xA7 <RL>+0x0027 # APOSTROPHE, right-left
0xA8 <RL>+0x0028 # LEFT PARENTHESIS, right-left
0xA9 <RL>+0x0029 # RIGHT PARENTHESIS, right-left
0xAA <RL>+0x002A # ASTERISK, right-left
0xAB <RL>+0x002B # PLUS SIGN, right-left
0xAC 0x060C # ARABIC COMMA
0xAD <RL>+0x002D # HYPHEN-MINUS, right-left
0xAE <RL>+0x002E # FULL STOP, right-left
0xAF <RL>+0x002F # SOLIDUS, right-left
0xB0 <RL>+0x06F0 # EXTENDED ARABIC-INDIC DIGIT ZERO, right-left (need override)
0xB1 <RL>+0x06F1 # EXTENDED ARABIC-INDIC DIGIT ONE, right-left (need override)
0xB2 <RL>+0x06F2 # EXTENDED ARABIC-INDIC DIGIT TWO, right-left (need override)
0xB3 <RL>+0x06F3 # EXTENDED ARABIC-INDIC DIGIT THREE, right-left (need override)
0xB4 <RL>+0x06F4 # EXTENDED ARABIC-INDIC DIGIT FOUR, right-left (need override)
0xB5 <RL>+0x06F5 # EXTENDED ARABIC-INDIC DIGIT FIVE, right-left (need override)
0xB6 <RL>+0x06F6 # EXTENDED ARABIC-INDIC DIGIT SIX, right-left (need override)
0xB7 <RL>+0x06F7 # EXTENDED ARABIC-INDIC DIGIT SEVEN, right-left (need override)
0xB8 <RL>+0x06F8 # EXTENDED ARABIC-INDIC DIGIT EIGHT, right-left (need override)
0xB9 <RL>+0x06F9 # EXTENDED ARABIC-INDIC DIGIT NINE, right-left (need override)
0xBA <RL>+0x003A # COLON, right-left
0xBB 0x061B # ARABIC SEMICOLON
0xBC <RL>+0x003C # LESS-THAN SIGN, right-left
0xBD <RL>+0x003D # EQUALS SIGN, right-left
0xBE <RL>+0x003E # GREATER-THAN SIGN, right-left
0xBF 0x061F # ARABIC QUESTION MARK
0xC0 <RL>+0x274A # EIGHT TEARDROP-SPOKED PROPELLER ASTERISK, right-left
0xC1 0x0621 # ARABIC LETTER HAMZA
0xC2 0x0622 # ARABIC LETTER ALEF WITH MADDA ABOVE
0xC3 0x0623 # ARABIC LETTER ALEF WITH HAMZA ABOVE
0xC4 0x0624 # ARABIC LETTER WAW WITH HAMZA ABOVE
0xC5 0x0625 # ARABIC LETTER ALEF WITH HAMZA BELOW
0xC6 0x0626 # ARABIC LETTER YEH WITH HAMZA ABOVE
0xC7 0x0627 # ARABIC LETTER ALEF
0xC8 0x0628 # ARABIC LETTER BEH
0xC9 0x0629 # ARABIC LETTER TEH MARBUTA
0xCA 0x062A # ARABIC LETTER TEH
0xCB 0x062B # ARABIC LETTER THEH
0xCC 0x062C # ARABIC LETTER JEEM
0xCD 0x062D # ARABIC LETTER HAH
0xCE 0x062E # ARABIC LETTER KHAH
0xCF 0x062F # ARABIC LETTER DAL
0xD0 0x0630 # ARABIC LETTER THAL
0xD1 0x0631 # ARABIC LETTER REH
0xD2 0x0632 # ARABIC LETTER ZAIN
0xD3 0x0633 # ARABIC LETTER SEEN
0xD4 0x0634 # ARABIC LETTER SHEEN
0xD5 0x0635 # ARABIC LETTER SAD
0xD6 0x0636 # ARABIC LETTER DAD
0xD7 0x0637 # ARABIC LETTER TAH
0xD8 0x0638 # ARABIC LETTER ZAH
0xD9 0x0639 # ARABIC LETTER AIN
0xDA 0x063A # ARABIC LETTER GHAIN
0xDB <RL>+0x005B # LEFT SQUARE BRACKET, right-left
0xDC <RL>+0x005C # REVERSE SOLIDUS, right-left
0xDD <RL>+0x005D # RIGHT SQUARE BRACKET, right-left
0xDE <RL>+0x005E # CIRCUMFLEX ACCENT, right-left
0xDF <RL>+0x005F # LOW LINE, right-left
0xE0 0x0640 # ARABIC TATWEEL
0xE1 0x0641 # ARABIC LETTER FEH
0xE2 0x0642 # ARABIC LETTER QAF
0xE3 0x0643 # ARABIC LETTER KAF
0xE4 0x0644 # ARABIC LETTER LAM
0xE5 0x0645 # ARABIC LETTER MEEM
0xE6 0x0646 # ARABIC LETTER NOON
0xE7 0x0647 # ARABIC LETTER HEH
0xE8 0x0648 # ARABIC LETTER WAW
0xE9 0x0649 # ARABIC LETTER ALEF MAKSURA
0xEA 0x064A # ARABIC LETTER YEH
0xEB 0x064B # ARABIC FATHATAN
0xEC 0x064C # ARABIC DAMMATAN
0xED 0x064D # ARABIC KASRATAN
0xEE 0x064E # ARABIC FATHA
0xEF 0x064F # ARABIC DAMMA
0xF0 0x0650 # ARABIC KASRA
0xF1 0x0651 # ARABIC SHADDA
0xF2 0x0652 # ARABIC SUKUN
0xF3 0x067E # ARABIC LETTER PEH
0xF4 0x0679 # ARABIC LETTER TTEH
0xF5 0x0686 # ARABIC LETTER TCHEH
0xF6 0x06D5 # ARABIC LETTER AE
0xF7 0x06A4 # ARABIC LETTER VEH
0xF8 0x06AF # ARABIC LETTER GAF
0xF9 0x0688 # ARABIC LETTER DDAL
0xFA 0x0691 # ARABIC LETTER RREH
0xFB <RL>+0x007B # LEFT CURLY BRACKET, right-left
0xFC <RL>+0x007C # VERTICAL LINE, right-left
0xFD <RL>+0x007D # RIGHT CURLY BRACKET, right-left
0xFE 0x0698 # ARABIC LETTER JEH
0xFF 0x06D2 # ARABIC LETTER YEH BARREE
@@ -0,0 +1,335 @@
#
# Contents: Map (external version) from Mac OS Celtic
# character set to Unicode 3.0 and later
#
# Contacts: charsets@apple.com, everson@evertype.com
#
# Changes:
#
# c01 2005-Apr-01 First posted version. Matches internal xml
# <c1.1> and Text Encoding Converter 2.0.
#
# Standard header:
# ----------------
#
# Apple, the Apple logo, and Macintosh are trademarks of Apple
# Computer, Inc., registered in the United States and other countries.
# Unicode is a trademark of Unicode Inc. For the sake of brevity,
# throughout this document, "Macintosh" can be used to refer to
# Macintosh computers and "Unicode" can be used to refer to the
# Unicode standard.
#
# Apple Computer, Inc. ("Apple") makes no warranty or representation,
# either express or implied, with respect to this document and the
# included data, its quality, accuracy, or fitness for a particular
# purpose. In no event will Apple be liable for direct, indirect,
# special, incidental, or consequential damages resulting from any
# defect or inaccuracy in this document or the included data.
#
# These mapping tables and character lists are subject to change.
# The latest tables should be available from the following:
#
# <http://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/>
#
# For general information about Mac OS encodings and these mapping
# tables, see the file "README.TXT".
#
# Format:
# -------
#
# Three tab-separated columns;
# '#' begins a comment which continues to the end of the line.
# Column #1 is the Mac OS Gaelic code (in hex as 0xNN)
# Column #2 is the corresponding Unicode (in hex as 0xNNNN)
# Column #3 is a comment containing the Unicode name
#
# The entries are in Mac OS Gaelic code order.
#
# Control character mappings are not shown in this table, following
# the conventions of the standard UTC mapping tables. However, the
# Mac OS Gaelic character set uses the standard control characters
# at 0x00-0x1F and 0x7F.
#
# Notes on Mac OS Gaelic (partly from Michael Everson):
# -----------------------------------------------------
#
# This is a legacy Mac OS encoding; in the Mac OS X Carbon and Cocoa
# environments, it is only supported via transcoding to and from
# Unicode.
#
# This character set was developed by Michael Everson of Everson
# Typography (everson@evertype.com) and was used for fonts in his
# Celtic Utilities and CeltScript font packages for the Mac, as well
# as some fonts included with the Irish localizations of Mac OS 6.0.8
# and 7.1. Note that while Apple authorized this Irish localization,
# it was not a system which shipped with Apple hardware, and was not
# otherwise supported by Apple. Fonts conforming to the Mac OS Gaelic
# character set are available from Everson Typography
# (http://www.evertype.com/celtscript/). Information about the use of
# this character set is available at
# http://www.evertype.com/celtscript/celtcode.html.
#
# The Mac OS Gaelic encoding shares the script code smRoman (0) with
# the standard Mac OS Roman encoding. To determine if the Gaelic
# encoding is being used in Mac OS 7-9, you should also check if the
# system region code is 81. Otherwise, you can check for particular
# fonts that conform to this encoding (since in practice Gaelic fonts
# are used with the ordinary US or UK system versions).
#
# This character set is a variant of standard Mac OS Roman, adding
# capital and small y with acute, grave, and circumflex; capital and
# small w with acute, grave, circumflex and diaeresis; capital and
# small b, c, d, f, g, m, p, s, t with dot above; tironian et; small
# long r, small long s, and small long s with dot above. It has 36
# code point differences from standard Mac OS Roman.
#
# Before Mac OS 8.5, code point 0xDB was CURRENCY SIGN, and was
# mapped to U+00A4. In Mac OS 8.5 and later versions, code point
# 0xDB is changed to EURO SIGN and maps to U+20AC; the standard
# Apple fonts are updated for Mac OS 8.5 to reflect this. There is
# a "currency sign" variant of the Latin 8 Extended encoding that still
# maps 0xDB to U+00A4; this can be used for older fonts.
# Note: U+20AC is new with Unicode 2.1; for earlier Unicode
# versions, Latin 8 Extended 0xDB may be mapped to private-use
# character U+F8A0.
#
# Before Unicode 3.0, code point 0xE4 was PER MILLE SIGN, and was
# mapped to U+2030. Since August 1998, code point 0xE4 is changed
# to TIRONIAN SIGN ET and maps to U+204A. There is a "per mille
# sign" variant of the Mac OS Gaelic encoding that still
# maps 0xE4 to U+2030; this can be used for older fonts.
# Note: U+204A is new with Unicode 3.0; for earlier Unicode
# versions, Mac OS Gaelic was unified with AMPERSAND.
#
# Unicode mapping issues and notes:
# ---------------------------------
#
# Details of mapping changes in each version:
# -------------------------------------------
#
##################
0x20 0x0020 # SPACE
0x21 0x0021 # EXCLAMATION MARK
0x22 0x0022 # QUOTATION MARK
0x23 0x0023 # NUMBER SIGN
0x24 0x0024 # DOLLAR SIGN
0x25 0x0025 # PERCENT SIGN
0x26 0x0026 # AMPERSAND
0x27 0x0027 # APOSTROPHE
0x28 0x0028 # LEFT PARENTHESIS
0x29 0x0029 # RIGHT PARENTHESIS
0x2A 0x002A # ASTERISK
0x2B 0x002B # PLUS SIGN
0x2C 0x002C # COMMA
0x2D 0x002D # HYPHEN-MINUS
0x2E 0x002E # FULL STOP
0x2F 0x002F # SOLIDUS
0x30 0x0030 # DIGIT ZERO
0x31 0x0031 # DIGIT ONE
0x32 0x0032 # DIGIT TWO
0x33 0x0033 # DIGIT THREE
0x34 0x0034 # DIGIT FOUR
0x35 0x0035 # DIGIT FIVE
0x36 0x0036 # DIGIT SIX
0x37 0x0037 # DIGIT SEVEN
0x38 0x0038 # DIGIT EIGHT
0x39 0x0039 # DIGIT NINE
0x3A 0x003A # COLON
0x3B 0x003B # SEMICOLON
0x3C 0x003C # LESS-THAN SIGN
0x3D 0x003D # EQUALS SIGN
0x3E 0x003E # GREATER-THAN SIGN
0x3F 0x003F # QUESTION MARK
0x40 0x0040 # COMMERCIAL AT
0x41 0x0041 # LATIN CAPITAL LETTER A
0x42 0x0042 # LATIN CAPITAL LETTER B
0x43 0x0043 # LATIN CAPITAL LETTER C
0x44 0x0044 # LATIN CAPITAL LETTER D
0x45 0x0045 # LATIN CAPITAL LETTER E
0x46 0x0046 # LATIN CAPITAL LETTER F
0x47 0x0047 # LATIN CAPITAL LETTER G
0x48 0x0048 # LATIN CAPITAL LETTER H
0x49 0x0049 # LATIN CAPITAL LETTER I
0x4A 0x004A # LATIN CAPITAL LETTER J
0x4B 0x004B # LATIN CAPITAL LETTER K
0x4C 0x004C # LATIN CAPITAL LETTER L
0x4D 0x004D # LATIN CAPITAL LETTER M
0x4E 0x004E # LATIN CAPITAL LETTER N
0x4F 0x004F # LATIN CAPITAL LETTER O
0x50 0x0050 # LATIN CAPITAL LETTER P
0x51 0x0051 # LATIN CAPITAL LETTER Q
0x52 0x0052 # LATIN CAPITAL LETTER R
0x53 0x0053 # LATIN CAPITAL LETTER S
0x54 0x0054 # LATIN CAPITAL LETTER T
0x55 0x0055 # LATIN CAPITAL LETTER U
0x56 0x0056 # LATIN CAPITAL LETTER V
0x57 0x0057 # LATIN CAPITAL LETTER W
0x58 0x0058 # LATIN CAPITAL LETTER X
0x59 0x0059 # LATIN CAPITAL LETTER Y
0x5A 0x005A # LATIN CAPITAL LETTER Z
0x5B 0x005B # LEFT SQUARE BRACKET
0x5C 0x005C # REVERSE SOLIDUS
0x5D 0x005D # RIGHT SQUARE BRACKET
0x5E 0x005E # CIRCUMFLEX ACCENT
0x5F 0x005F # LOW LINE
0x60 0x0060 # GRAVE ACCENT
0x61 0x0061 # LATIN SMALL LETTER A
0x62 0x0062 # LATIN SMALL LETTER B
0x63 0x0063 # LATIN SMALL LETTER C
0x64 0x0064 # LATIN SMALL LETTER D
0x65 0x0065 # LATIN SMALL LETTER E
0x66 0x0066 # LATIN SMALL LETTER F
0x67 0x0067 # LATIN SMALL LETTER G
0x68 0x0068 # LATIN SMALL LETTER H
0x69 0x0069 # LATIN SMALL LETTER I
0x6A 0x006A # LATIN SMALL LETTER J
0x6B 0x006B # LATIN SMALL LETTER K
0x6C 0x006C # LATIN SMALL LETTER L
0x6D 0x006D # LATIN SMALL LETTER M
0x6E 0x006E # LATIN SMALL LETTER N
0x6F 0x006F # LATIN SMALL LETTER O
0x70 0x0070 # LATIN SMALL LETTER P
0x71 0x0071 # LATIN SMALL LETTER Q
0x72 0x0072 # LATIN SMALL LETTER R
0x73 0x0073 # LATIN SMALL LETTER S
0x74 0x0074 # LATIN SMALL LETTER T
0x75 0x0075 # LATIN SMALL LETTER U
0x76 0x0076 # LATIN SMALL LETTER V
0x77 0x0077 # LATIN SMALL LETTER W
0x78 0x0078 # LATIN SMALL LETTER X
0x79 0x0079 # LATIN SMALL LETTER Y
0x7A 0x007A # LATIN SMALL LETTER Z
0x7B 0x007B # LEFT CURLY BRACKET
0x7C 0x007C # VERTICAL LINE
0x7D 0x007D # RIGHT CURLY BRACKET
0x7E 0x007E # TILDE
#
0x80 0x00C4 # LATIN CAPITAL LETTER A WITH DIAERESIS
0x81 0x00C5 # LATIN CAPITAL LETTER A WITH RING ABOVE
0x82 0x00C7 # LATIN CAPITAL LETTER C WITH CEDILLA
0x83 0x00C9 # LATIN CAPITAL LETTER E WITH ACUTE
0x84 0x00D1 # LATIN CAPITAL LETTER N WITH TILDE
0x85 0x00D6 # LATIN CAPITAL LETTER O WITH DIAERESIS
0x86 0x00DC # LATIN CAPITAL LETTER U WITH DIAERESIS
0x87 0x00E1 # LATIN SMALL LETTER A WITH ACUTE
0x88 0x00E0 # LATIN SMALL LETTER A WITH GRAVE
0x89 0x00E2 # LATIN SMALL LETTER A WITH CIRCUMFLEX
0x8A 0x00E4 # LATIN SMALL LETTER A WITH DIAERESIS
0x8B 0x00E3 # LATIN SMALL LETTER A WITH TILDE
0x8C 0x00E5 # LATIN SMALL LETTER A WITH RING ABOVE
0x8D 0x00E7 # LATIN SMALL LETTER C WITH CEDILLA
0x8E 0x00E9 # LATIN SMALL LETTER E WITH ACUTE
0x8F 0x00E8 # LATIN SMALL LETTER E WITH GRAVE
0x90 0x00EA # LATIN SMALL LETTER E WITH CIRCUMFLEX
0x91 0x00EB # LATIN SMALL LETTER E WITH DIAERESIS
0x92 0x00ED # LATIN SMALL LETTER I WITH ACUTE
0x93 0x00EC # LATIN SMALL LETTER I WITH GRAVE
0x94 0x00EE # LATIN SMALL LETTER I WITH CIRCUMFLEX
0x95 0x00EF # LATIN SMALL LETTER I WITH DIAERESIS
0x96 0x00F1 # LATIN SMALL LETTER N WITH TILDE
0x97 0x00F3 # LATIN SMALL LETTER O WITH ACUTE
0x98 0x00F2 # LATIN SMALL LETTER O WITH GRAVE
0x99 0x00F4 # LATIN SMALL LETTER O WITH CIRCUMFLEX
0x9A 0x00F6 # LATIN SMALL LETTER O WITH DIAERESIS
0x9B 0x00F5 # LATIN SMALL LETTER O WITH TILDE
0x9C 0x00FA # LATIN SMALL LETTER U WITH ACUTE
0x9D 0x00F9 # LATIN SMALL LETTER U WITH GRAVE
0x9E 0x00FB # LATIN SMALL LETTER U WITH CIRCUMFLEX
0x9F 0x00FC # LATIN SMALL LETTER U WITH DIAERESIS
0xA0 0x2020 # DAGGER
0xA1 0x00B0 # DEGREE SIGN
0xA2 0x00A2 # CENT SIGN
0xA3 0x00A3 # POUND SIGN
0xA4 0x00A7 # SECTION SIGN
0xA5 0x2022 # BULLET
0xA6 0x00B6 # PILCROW SIGN
0xA7 0x00DF # LATIN SMALL LETTER SHARP S
0xA8 0x00AE # REGISTERED SIGN
0xA9 0x00A9 # COPYRIGHT SIGN
0xAA 0x2122 # TRADE MARK SIGN
0xAB 0x00B4 # ACUTE ACCENT
0xAC 0x00A8 # DIAERESIS
0xAD 0x2260 # NOT EQUAL TO
0xAE 0x00C6 # LATIN CAPITAL LETTER AE
0xAF 0x00D8 # LATIN CAPITAL LETTER O WITH STROKE
0xB0 0x1E02 # LATIN CAPITAL LETTER B WITH DOT ABOVE
0xB1 0x00B1 # PLUS-MINUS SIGN
0xB2 0x2264 # LESS-THAN OR EQUAL TO
0xB3 0x2265 # GREATER-THAN OR EQUAL TO
0xB4 0x1E03 # LATIN SMALL LETTER B WITH DOT ABOVE
0xB5 0x010A # LATIN CAPITAL LETTER C WITH DOT ABOVE
0xB6 0x010B # LATIN SMALL LETTER C WITH DOT ABOVE
0xB7 0x1E0A # LATIN CAPITAL LETTER D WITH DOT ABOVE
0xB8 0x1E0B # LATIN SMALL LETTER D WITH DOT ABOVE
0xB9 0x1E1E # LATIN CAPITAL LETTER F WITH DOT ABOVE
0xBA 0x1E1F # LATIN SMALL LETTER F WITH DOT ABOVE
0xBB 0x0120 # LATIN CAPITAL LETTER G WITH DOT ABOVE
0xBC 0x0121 # LATIN SMALL LETTER G WITH DOT ABOVE
0xBD 0x1E40 # LATIN CAPITAL LETTER M WITH DOT ABOVE
0xBE 0x00E6 # LATIN SMALL LETTER AE
0xBF 0x00F8 # LATIN SMALL LETTER O WITH STROKE
0xC0 0x1E41 # LATIN SMALL LETTER M WITH DOT ABOVE
0xC1 0x1E56 # LATIN CAPITAL LETTER P WITH DOT ABOVE
0xC2 0x1E57 # LATIN SMALL LETTER P WITH DOT ABOVE
0xC3 0x027C # LATIN SMALL LETTER R WITH LONG LEG
0xC4 0x0192 # LATIN SMALL LETTER F WITH HOOK
0xC5 0x017F # LATIN SMALL LETTER LONG S
0xC6 0x1E60 # LATIN CAPITAL LETTER S WITH DOT ABOVE
0xC7 0x00AB # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
0xC8 0x00BB # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
0xC9 0x2026 # HORIZONTAL ELLIPSIS
0xCA 0x00A0 # NO-BREAK SPACE
0xCB 0x00C0 # LATIN CAPITAL LETTER A WITH GRAVE
0xCC 0x00C3 # LATIN CAPITAL LETTER A WITH TILDE
0xCD 0x00D5 # LATIN CAPITAL LETTER O WITH TILDE
0xCE 0x0152 # LATIN CAPITAL LIGATURE OE
0xCF 0x0153 # LATIN SMALL LIGATURE OE
0xD0 0x2013 # EN DASH
0xD1 0x2014 # EM DASH
0xD2 0x201C # LEFT DOUBLE QUOTATION MARK
0xD3 0x201D # RIGHT DOUBLE QUOTATION MARK
0xD4 0x2018 # LEFT SINGLE QUOTATION MARK
0xD5 0x2019 # RIGHT SINGLE QUOTATION MARK
0xD6 0x1E61 # LATIN SMALL LETTER S WITH DOT ABOVE
0xD7 0x1E9B # LATIN SMALL LETTER LONG S WITH DOT ABOVE
0xD8 0x00FF # LATIN SMALL LETTER Y WITH DIAERESIS
0xD9 0x0178 # LATIN CAPITAL LETTER Y WITH DIAERESIS
0xDA 0x1E6A # LATIN CAPITAL LETTER T WITH DOT ABOVE
0xDB 0x20AC # EURO SIGN # before Mac OS 8.5 this was U+00A4 CURRENCY SIGN
0xDC 0x2039 # SINGLE LEFT-POINTING ANGLE QUOTATION MARK
0xDD 0x203A # SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
0xDE 0x0176 # LATIN CAPITAL LETTER Y WITH CIRCUMFLEX
0xDF 0x0177 # LATIN SMALL LETTER Y WITH CIRCUMFLEX
0xE0 0x1E6B # LATIN SMALL LETTER T WITH DOT ABOVE
0xE1 0x00B7 # MIDDLE DOT
0xE2 0x1EF2 # LATIN CAPITAL LETTER Y WITH GRAVE
0xE3 0x1EF3 # LATIN SMALL LETTER Y WITH GRAVE
0xE4 0x204A # TIRONIAN SIGN ET # change from MacCeltic for Unicode 3.0; before Aug. 1998 this was U+2030 PER MILLE SIGN
0xE5 0x00C2 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
0xE6 0x00CA # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
0xE7 0x00C1 # LATIN CAPITAL LETTER A WITH ACUTE
0xE8 0x00CB # LATIN CAPITAL LETTER E WITH DIAERESIS
0xE9 0x00C8 # LATIN CAPITAL LETTER E WITH GRAVE
0xEA 0x00CD # LATIN CAPITAL LETTER I WITH ACUTE
0xEB 0x00CE # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
0xEC 0x00CF # LATIN CAPITAL LETTER I WITH DIAERESIS
0xED 0x00CC # LATIN CAPITAL LETTER I WITH GRAVE
0xEE 0x00D3 # LATIN CAPITAL LETTER O WITH ACUTE
0xEF 0x00D4 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
0xF0 0x2663 # BLACK CLUB SUIT = shamrock # future mapping U+2618 SHAMROCK
0xF1 0x00D2 # LATIN CAPITAL LETTER O WITH GRAVE
0xF2 0x00DA # LATIN CAPITAL LETTER U WITH ACUTE
0xF3 0x00DB # LATIN CAPITAL LETTER U WITH CIRCUMFLEX
0xF4 0x00D9 # LATIN CAPITAL LETTER U WITH GRAVE
0xF5 0x0131 # LATIN SMALL LETTER DOTLESS I
0xF6 0x00DD # LATIN CAPITAL LETTER Y WITH ACUTE
0xF7 0x00FD # LATIN SMALL LETTER Y WITH ACUTE
0xF8 0x0174 # LATIN CAPITAL LETTER W WITH CIRCUMFLEX
0xF9 0x0175 # LATIN SMALL LETTER W WITH CIRCUMFLEX
0xFA 0x1E84 # LATIN CAPITAL LETTER W WITH DIAERESIS
0xFB 0x1E85 # LATIN SMALL LETTER W WITH DIAERESIS
0xFC 0x1E80 # LATIN CAPITAL LETTER W WITH GRAVE
0xFD 0x1E81 # LATIN SMALL LETTER W WITH GRAVE
0xFE 0x1E82 # LATIN CAPITAL LETTER W WITH ACUTE
0xFF 0x1E83 # LATIN SMALL LETTER W WITH ACUTE
@@ -0,0 +1,599 @@
#
# Contents: Map (external version) from Mac OS Hebrew
# character set to Unicode 2.1 and later.
#
# Copyright: (c) 1995-2002, 2005 by Apple Computer, Inc., all rights
# reserved.
#
# Contact: charsets@apple.com
#
# Changes:
#
# c02 2005-Apr-05 Update header comments; add section on
# roundtrip considerations. Matches internal
# xml <c1.4> and Text Encoding Converter 2.0.
# b3,c1 2002-Dec-19 Don't require left-right context for digits
# 0x30-0x39. Change mapping of 0x81 to use
# decomposition. Reverse the mappings of 0xA8,
# 0xA9. Update URLs, notes. Matches internal
# utom<b7>.
# b02 1999-Sep-22 Update contact e-mail address. Matches
# internal utom<b1>, ufrm<b1>, and Text
# Encoding Converter version 1.5.
# n03 1998-Feb-05 Show required Unicode character
# directionality in a different way. Update
# mappings for 0xC0 and 0xDE to use
# transcoding hints; matches internal utom<n6>,
# ufrm<n20>, and Text Encoding Converter
# version 1.3. Rewrite header comments.
# n01 1995-Nov-15 First version. Matches internal ufrm<n8>.
#
# Standard header:
# ----------------
#
# Apple, the Apple logo, and Macintosh are trademarks of Apple
# Computer, Inc., registered in the United States and other countries.
# Unicode is a trademark of Unicode Inc. For the sake of brevity,
# throughout this document, "Macintosh" can be used to refer to
# Macintosh computers and "Unicode" can be used to refer to the
# Unicode standard.
#
# Apple Computer, Inc. ("Apple") makes no warranty or representation,
# either express or implied, with respect to this document and the
# included data, its quality, accuracy, or fitness for a particular
# purpose. In no event will Apple be liable for direct, indirect,
# special, incidental, or consequential damages resulting from any
# defect or inaccuracy in this document or the included data.
#
# These mapping tables and character lists are subject to change.
# The latest tables should be available from the following:
#
# <http://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/>
#
# For general information about Mac OS encodings and these mapping
# tables, see the file "README.TXT".
#
# Format:
# -------
#
# Three tab-separated columns;
# '#' begins a comment which continues to the end of the line.
# Column #1 is the Mac OS Hebrew code (in hex as 0xNN).
# Column #2 is the corresponding Unicode or Unicode sequence (in
# hex as 0xNNNN, 0xNNNN+0xNNNN, etc.). Sequences of up to 3
# Unicode characters are used here. A single Unicode character
# may be preceded by a tag indicating required directionality
# (i.e. <LR>+0xNNNN or <RL>+0xNNNN).
# Column #3 is a comment containing the Unicode name.
#
# The entries are in Mac OS Hebrew code order.
#
# Some of these mappings require the use of corporate characters.
# See the file "CORPCHAR.TXT" and notes below.
#
# Control character mappings are not shown in this table, following
# the conventions of the standard UTC mapping tables. However, the
# Mac OS Hebrew character set uses the standard control characters at
# 0x00-0x1F and 0x7F.
#
# Notes on Mac OS Hebrew:
# -----------------------
#
# This is a legacy Mac OS encoding; in the Mac OS X Carbon and Cocoa
# environments, it is only supported via transcoding to and from
# Unicode.
#
# 1. General
#
# The Mac OS Hebrew character set supports the Hebrew and Yiddish
# languages. It incorporates the Hebrew letter repertoire of
# ISO 8859-8, and uses the same code points for them, 0xE0-0xFA.
# It also incorporates the ASCII character set. In addition, the
# Mac OS Hebrew character set includes the following:
#
# - Hebrew points (nikud marks) at 0xC6, 0xCB-0xCF and 0xD8-0xDF.
# These are non-spacing combining marks. Note that the RAFE point
# at 0xD8 is not displayed correctly in some fonts, and cannot be
# typed using the keyboard layouts in the current Hebrew localized
# systems. Also note: The character given in Unicode as QAMATS
# (U+05B8) actually refers to two different sounds, depending on
# context. For example, when ALEF is followed by QAMATS, the QAMATS
# can actually refer to two different sounds depending on the
# following letters. The Mac OS Hebrew character set separately
# encodes these two sounds for the same graphic shape, as "qamats"
# (0xCB) and "qamats qatan" (0xDE). The "qamats" character is more
# common, so it is mapped to the Unicode QAMATS; "qamats qatan" can
# only be used with a limited number of characters, and it is
# mapped using a corporate-zone variant tag (see below).
#
# - Various Hebrew ligatures at 0x81, 0xC0, 0xC7, 0xC8, 0xD6, and
# 0xD7. Also note that the Yiddish YOD YOD PATAH ligature at 0x81
# is missing in some fonts.
#
# - The NEW SHEQEL SIGN at 0xA6.
#
# - Latin characters with diacritics at 0x80 and 0x82-0x9F. However,
# most of these cannot be typed using the keyboard layouts in the
# Hebrew localized systems.
#
# - Right-left versions of certain ASCII punctuation, symbols and
# digits: 0xA0-0xA5, 0xA7-0xBF, 0xFB-0xFF. See below.
#
# - Miscellaneous additional punctuation at 0xC1, 0xC9, 0xCA, and
# 0xD0-0xD5. There is a variant of the Hebrew encoding in which
# the LEFT SINGLE QUOTATION MARK at 0xD4 is replaced by FIGURE
# SPACE. The glyphs for some of the other punctuation characters
# are missing in some fonts.
#
# - Four obsolete characters at 0xC2-0xC5 known as canorals (not to
# be confused with cantillation marks!). These were used for
# manual positioning of nikud marks before System 7.1 (at which
# point nikud positioning became automatic with WorldScript.).
#
# 2. Directional characters and roundtrip fidelity
#
# The Mac OS Hebrew character set was developed around 1987. At that
# time the bidirectional line line layout algorithm used in the Mac OS
# Hebrew system was fairly simple; it used only a few direction
# classes (instead of the 19 now used in the Unicode bidirectional
# algorithm). In order to permit users to handle some tricky layou
# problems, certain punctuation, symbol, and digit characters have
# duplicate code points, one with a left-right direction attribute and
# the other with a right-left direction attribute.
#
# For example, plus sign is encoded at 0x2B with a left-right
# attribute, and at 0xAB with a right-left attribute. However, there
# is only one PLUS SIGN character in Unicode. This leads to some
# interesting problems when mapping between Mac OS Hebrew and Unicode;
# see below.
#
# A related problem is that even when a particular character is
# encoded only once in Mac OS Hebrew, it may have a different
# direction attribute than the corresponding Unicode character.
#
# For example, the Mac OS Hebrew character at 0xC9 is HORIZONTAL
# ELLIPSIS with strong right-left direction. However, the Unicode
# character HORIZONTAL ELLIPSIS has direction class neutral.
#
# 3. Font variants
#
# The table in this file gives the Unicode mappings for the standard
# Mac OS Hebrew encoding. This encoding is supported by many of the
# Apple fonts (including all of the fonts in the Hebrew Language Kit),
# and is the encoding supported by the text processing utilities.
# However, some TrueType fonts provided with the localized Hebrew
# system implement a slightly different encoding; the difference is
# only in one code point, 0xD4. For the standard variant, this is:
# 0xD4 -> <RL>+0x2018 LEFT SINGLE QUOTATION MARK, right-left
#
# The TrueType variant is used by the following TrueType fonts from
# the localized system: Caesarea, Carmel Book, Gilboa, Ramat Sharon,
# and Sinai Book. For these, 0xD4 is as follows:
# 0xD4 -> <RL>+0x2007 FIGURE SPACE, right-left
#
# Unicode mapping issues and notes:
# ---------------------------------
#
# 1. Matching the direction of Mac OS Hebrew characters
#
# When Mac OS Hebrew encodes a character twice but with different
# direction attributes for the two code points - as in the case of
# plus sign mentioned above - we need a way to map both Mac OS Hebrew
# code points to Unicode and back again without loss of information.
# With the plus sign, for example, mapping one of the Mac OS Hebrew
# characters to a code in the Unicode corporate use zone is
# undesirable, since both of the plus sign characters are likely to
# be used in text that is interchanged.
#
# The problem is solved with the use of direction override characters
# and direction-dependent mappings. When mapping from Mac OS Hebrew
# to Unicode, we use direction overrides as necessary to force the
# direction of the resulting Unicode characters.
#
# The required direction is indicated by a direction tag in the
# mappings. A tag of <LR> means the corresponding Unicode character
# must have a strong left-right context, and a tag of <RL> indicates
# a right-left context.
#
# For example, the mapping of 0x2B is given as <LR>+0x002B; the
# mapping of 0xAB is given as <RL>+0x002B. If we map an isolated
# instance of 0x2B to Unicode, it should be mapped as follows (LRO
# indicates LEFT-RIGHT OVERRIDE, PDF indicates POP DIRECTION
# FORMATTING):
#
# 0x2B -> 0x202D (LRO) + 0x002B (PLUS SIGN) + 0x202C (PDF)
#
# When mapping several characters in a row that require direction
# forcing, the overrides need only be used at the beginning and end.
# For example:
#
# 0x24 0x20 0x28 0x29 -> 0x202D 0x0024 0x0020 0x0028 0x0029 0x202C
#
# If neutral characters that require direction forcing are already
# between strong-direction characters with matching directionality,
# then direction overrides need not be used. Direction overrides are
# always needed to map the right-left digits at 0xB0-0xB9.
#
# When mapping from Unicode to Mac OS Hebrew, the Unicode
# bidirectional algorithm should be used to determine resolved
# direction of the Unicode characters. The mapping from Unicode to
# Mac OS Hebrew can then be disambiguated by the use of the resolved
# direction:
#
# Unicode 0x002B -> Mac OS Hebrew 0x2B (if L) or 0xAB (if R)
#
# However, this also means the direction override characters should
# be discarded when mapping from Unicode to Mac OS Hebrew (after
# they have been used to determine resolved direction), since the
# direction override information is carried by the code point itself.
#
# Even when direction overrides are not needed for roundtrip
# fidelity, they are sometimes used when mapping Mac OS Hebrew
# characters to Unicode in order to achieve similar text layout with
# the resulting Unicode text. For example, the single Mac OS Hebrew
# ellipsis character has direction class right-left,and there is no
# left-right version. However, the Unicode HORIZONTAL ELLIPSIS
# character has direction class neutral (which means it may end up
# with a resolved direction of left-right if surrounded by left-right
# characters). When mapping the Mac OS Hebrew ellipsis to Unicode, it
# is surrounded with a direction override to help preserve proper
# text layout. The resolved direction is not needed or used when
# mapping the Unicode HORIZONTAL ELLIPSIS back to Mac OS Hebrew.
#
# 2. Use of corporate-zone Unicodes
#
# The goals in the mappings provided here are:
# - Ensure roundtrip mapping from every character in the Mac OS
# Hebrew character set to Unicode and back
# - Use standard Unicode characters as much as possible, to
# maximize interchangeability of the resulting Unicode text.
# Whenever possible, avoid having content carried by private-use
# characters.
#
# Some of the characters in the Mac OS Hebrew character set do not
# correspond to distinct, single Unicode characters. To map these
# and satisfy both goals above, we employ various strategies.
#
# a) If possible, use private use characters in combination with
# standard Unicode characters to mark variants of the standard
# Unicode character.
#
# Apple has defined a block of 32 corporate characters as "transcoding
# hints." These are used in combination with standard Unicode characters
# to force them to be treated in a special way for mapping to other
# encodings; they have no other effect. Sixteen of these transcoding
# hints are "grouping hints" - they indicate that the next 2-4 Unicode
# characters should be treated as a single entity for transcoding. The
# other sixteen transcoding hints are "variant tags" - they are like
# combining characters, and can follow a standard Unicode (or a sequence
# consisting of a base character and other combining characters) to
# cause it to be treated in a special way for transcoding. These always
# terminate a combining-character sequence.
#
# Two transcoding hints are used in this mapping table: a grouping hint
# and a variant tag:
# hint:
# 0xF86A group next 2 characters, right-left directionality
# 0xF87F variant tag
#
# In Mac OS Hebrew, 0xC0 is a ligature for lamed holam. This can also
# be represented in Mac OS Hebrew as 0xEC+0xDD, using separate
# characters for lamed and holam. The latter sequence is mapped to
# Unicode as 0x05DC+0x05B9, i.e. as the sequence HEBREW LETTER LAMED +
# HEBREW POINT HOLAM. We want to map the ligature 0xC0 using the same
# standard Unicode characters, but for round-trip fidelity we need to
# distinguish it from the mapping of the sequence 0xEC+0xDD. Thus for
# 0xC0 we use a grouping hint, and map as follows:
#
# 0xC0 -> 0xF86A+0x05DC+0x05B9
#
# The variant tag is used for "qamats qatan" to mark it as an alternate
# for HEBREW POINT QAMATS, as follows:
#
# 0xDE -> 0x05B8+0xF87F
#
# b) Otherwise, use private use characters by themselves to map Mac OS
# Hebrew characters which have no relationship to any standard Unicode
# character.
#
# The following additional corporate zone Unicode characters are used
# for this purpose here (to map the obsolete "canorals", see above):
#
# 0xF89B Hebrew canoral 1
# 0xF89C Hebrew canoral 2
# 0xF89D Hebrew canoral 3
# 0xF89E Hebrew canoral 4
#
# 3. Roundtrip considerations when mapping to decomposed Unicode
#
# Both Mac OS Hebrew and Unicode provide multiple ways of representing
# certain letter-and-point combinations. For example, HEBREW LETTER
# VAV WITH HOLAM can be represented in Unicode as the single character
# 0xFB4B or as the sequence 0x05D5 0x05B9; similarly, it can be
# represented in Mac OS Hebrew as 0xC7 or as the sequence 0xE5 0xDD.
# This leads to some roundtrip problems. First note that we have the
# following mappings without such problems:
#
# Mac standard decomp. of reverse map
# OS Unicode mapping std. mapping of decomp.
# ---- ---------------------------------- ------------- -----------
# 0xC6 0x05BC ... POINT DAGESH OR MAPIQ 0x05BC (same) 0xC6
# 0xE5 0x05D5 ... LETTER VAV 0x05D5 (same) 0xE5
# 0xDD 0x05B9 ... POINT HOLAM 0x05B9 (same) 0xDD
#
# However, those mappings above cause roundtrip problems for the
# the following mappings if they are decomposed:
#
# Mac standard decomp. of reverse map
# OS Unicode mapping std. mapping of decomp.
# ---- ---------------------------------- ------------- -----------
# 0xC7 0xFB4B ... LETTER VAV WITH HOLAM 0x05D5 0x05B9 0xE5 0xDD
# 0xC8 0xFB35 ... LETTER VAV WITH DAGESH 0x05D5 0x05BC 0xE5 0xC6
#
# One solution is to use a grouping transcoding hint with the two
# decompositions above to mark the decomposed sequence for special
# treatment in transcoding. This yields the following mappings to
# decomposed Unicode:
#
# Mac decomposed
# OS Unicode mapping
# ---- --------------------
# 0xC7 0xF86A 0x05D5 0x05B9
# 0xC8 0xF86A 0x05D5 0x05BC
#
# Details of mapping changes in each version:
# -------------------------------------------
#
# Changes from version b02 to version b03/c01:
#
# - Stop specifying left-right context for digits 0x30-0x39, since the
# corresponding Unicodes 0x0030-0x0039 already have left-right
# directionality.
#
# - Change mapping of 0x81 from 0xFB1F HEBREW LIGATURE YIDDISH YOD YOD
# PATAH to its canonical decomposition 0x05F2+0x05B7 to improve
# cross-platform compatibility (Windows doesn't handle 0xFB1F)
#
# - Interchange the mappings of 0xA8 and 0xA9 to obtain the correct
# open/close behavior; they work differently than in Mac Arabic.
# The old mapping was
# 0xA8 <RL>+0x0028 # LEFT PARENTHESIS, right-left
# 0xA9 <RL>+0x0029 # RIGHT PARENTHESIS, right-left
# and the new mapping is
# 0xA8 <RL>+0x0029 # RIGHT PARENTHESIS, right-left
# 0xA9 <RL>+0x0028 # LEFT PARENTHESIS, right-left
#
# Changes from version n01 to version n03:
#
# - Change mapping for 0xC0 from single corporate character to
# grouping hint plus standard Unicodes
#
# - Change mapping for 0xDE from single corporate character to
# standard Unicode plus variant tag
#
##################
0x20 <LR>+0x0020 # SPACE, left-right
0x21 <LR>+0x0021 # EXCLAMATION MARK, left-right
0x22 <LR>+0x0022 # QUOTATION MARK, left-right
0x23 <LR>+0x0023 # NUMBER SIGN, left-right
0x24 <LR>+0x0024 # DOLLAR SIGN, left-right
0x25 <LR>+0x0025 # PERCENT SIGN, left-right
0x26 0x0026 # AMPERSAND
0x27 <LR>+0x0027 # APOSTROPHE, left-right
0x28 <LR>+0x0028 # LEFT PARENTHESIS, left-right
0x29 <LR>+0x0029 # RIGHT PARENTHESIS, left-right
0x2A <LR>+0x002A # ASTERISK, left-right
0x2B <LR>+0x002B # PLUS SIGN, left-right
0x2C <LR>+0x002C # COMMA, left-right
0x2D <LR>+0x002D # HYPHEN-MINUS, left-right
0x2E <LR>+0x002E # FULL STOP, left-right
0x2F <LR>+0x002F # SOLIDUS, left-right
0x30 0x0030 # DIGIT ZERO
0x31 0x0031 # DIGIT ONE
0x32 0x0032 # DIGIT TWO
0x33 0x0033 # DIGIT THREE
0x34 0x0034 # DIGIT FOUR
0x35 0x0035 # DIGIT FIVE
0x36 0x0036 # DIGIT SIX
0x37 0x0037 # DIGIT SEVEN
0x38 0x0038 # DIGIT EIGHT
0x39 0x0039 # DIGIT NINE
0x3A <LR>+0x003A # COLON, left-right
0x3B <LR>+0x003B # SEMICOLON, left-right
0x3C <LR>+0x003C # LESS-THAN SIGN, left-right
0x3D <LR>+0x003D # EQUALS SIGN, left-right
0x3E <LR>+0x003E # GREATER-THAN SIGN, left-right
0x3F <LR>+0x003F # QUESTION MARK, left-right
0x40 0x0040 # COMMERCIAL AT
0x41 0x0041 # LATIN CAPITAL LETTER A
0x42 0x0042 # LATIN CAPITAL LETTER B
0x43 0x0043 # LATIN CAPITAL LETTER C
0x44 0x0044 # LATIN CAPITAL LETTER D
0x45 0x0045 # LATIN CAPITAL LETTER E
0x46 0x0046 # LATIN CAPITAL LETTER F
0x47 0x0047 # LATIN CAPITAL LETTER G
0x48 0x0048 # LATIN CAPITAL LETTER H
0x49 0x0049 # LATIN CAPITAL LETTER I
0x4A 0x004A # LATIN CAPITAL LETTER J
0x4B 0x004B # LATIN CAPITAL LETTER K
0x4C 0x004C # LATIN CAPITAL LETTER L
0x4D 0x004D # LATIN CAPITAL LETTER M
0x4E 0x004E # LATIN CAPITAL LETTER N
0x4F 0x004F # LATIN CAPITAL LETTER O
0x50 0x0050 # LATIN CAPITAL LETTER P
0x51 0x0051 # LATIN CAPITAL LETTER Q
0x52 0x0052 # LATIN CAPITAL LETTER R
0x53 0x0053 # LATIN CAPITAL LETTER S
0x54 0x0054 # LATIN CAPITAL LETTER T
0x55 0x0055 # LATIN CAPITAL LETTER U
0x56 0x0056 # LATIN CAPITAL LETTER V
0x57 0x0057 # LATIN CAPITAL LETTER W
0x58 0x0058 # LATIN CAPITAL LETTER X
0x59 0x0059 # LATIN CAPITAL LETTER Y
0x5A 0x005A # LATIN CAPITAL LETTER Z
0x5B <LR>+0x005B # LEFT SQUARE BRACKET, left-right
0x5C 0x005C # REVERSE SOLIDUS
0x5D <LR>+0x005D # RIGHT SQUARE BRACKET, left-right
0x5E 0x005E # CIRCUMFLEX ACCENT
0x5F 0x005F # LOW LINE
0x60 0x0060 # GRAVE ACCENT
0x61 0x0061 # LATIN SMALL LETTER A
0x62 0x0062 # LATIN SMALL LETTER B
0x63 0x0063 # LATIN SMALL LETTER C
0x64 0x0064 # LATIN SMALL LETTER D
0x65 0x0065 # LATIN SMALL LETTER E
0x66 0x0066 # LATIN SMALL LETTER F
0x67 0x0067 # LATIN SMALL LETTER G
0x68 0x0068 # LATIN SMALL LETTER H
0x69 0x0069 # LATIN SMALL LETTER I
0x6A 0x006A # LATIN SMALL LETTER J
0x6B 0x006B # LATIN SMALL LETTER K
0x6C 0x006C # LATIN SMALL LETTER L
0x6D 0x006D # LATIN SMALL LETTER M
0x6E 0x006E # LATIN SMALL LETTER N
0x6F 0x006F # LATIN SMALL LETTER O
0x70 0x0070 # LATIN SMALL LETTER P
0x71 0x0071 # LATIN SMALL LETTER Q
0x72 0x0072 # LATIN SMALL LETTER R
0x73 0x0073 # LATIN SMALL LETTER S
0x74 0x0074 # LATIN SMALL LETTER T
0x75 0x0075 # LATIN SMALL LETTER U
0x76 0x0076 # LATIN SMALL LETTER V
0x77 0x0077 # LATIN SMALL LETTER W
0x78 0x0078 # LATIN SMALL LETTER X
0x79 0x0079 # LATIN SMALL LETTER Y
0x7A 0x007A # LATIN SMALL LETTER Z
0x7B <LR>+0x007B # LEFT CURLY BRACKET, left-right
0x7C <LR>+0x007C # VERTICAL LINE, left-right
0x7D <LR>+0x007D # RIGHT CURLY BRACKET, left-right
0x7E 0x007E # TILDE
#
0x80 0x00C4 # LATIN CAPITAL LETTER A WITH DIAERESIS
0x81 0x05F2+0x05B7 # HEBREW LIGATURE YIDDISH YOD YOD PATAH
0x82 0x00C7 # LATIN CAPITAL LETTER C WITH CEDILLA
0x83 0x00C9 # LATIN CAPITAL LETTER E WITH ACUTE
0x84 0x00D1 # LATIN CAPITAL LETTER N WITH TILDE
0x85 0x00D6 # LATIN CAPITAL LETTER O WITH DIAERESIS
0x86 0x00DC # LATIN CAPITAL LETTER U WITH DIAERESIS
0x87 0x00E1 # LATIN SMALL LETTER A WITH ACUTE
0x88 0x00E0 # LATIN SMALL LETTER A WITH GRAVE
0x89 0x00E2 # LATIN SMALL LETTER A WITH CIRCUMFLEX
0x8A 0x00E4 # LATIN SMALL LETTER A WITH DIAERESIS
0x8B 0x00E3 # LATIN SMALL LETTER A WITH TILDE
0x8C 0x00E5 # LATIN SMALL LETTER A WITH RING ABOVE
0x8D 0x00E7 # LATIN SMALL LETTER C WITH CEDILLA
0x8E 0x00E9 # LATIN SMALL LETTER E WITH ACUTE
0x8F 0x00E8 # LATIN SMALL LETTER E WITH GRAVE
0x90 0x00EA # LATIN SMALL LETTER E WITH CIRCUMFLEX
0x91 0x00EB # LATIN SMALL LETTER E WITH DIAERESIS
0x92 0x00ED # LATIN SMALL LETTER I WITH ACUTE
0x93 0x00EC # LATIN SMALL LETTER I WITH GRAVE
0x94 0x00EE # LATIN SMALL LETTER I WITH CIRCUMFLEX
0x95 0x00EF # LATIN SMALL LETTER I WITH DIAERESIS
0x96 0x00F1 # LATIN SMALL LETTER N WITH TILDE
0x97 0x00F3 # LATIN SMALL LETTER O WITH ACUTE
0x98 0x00F2 # LATIN SMALL LETTER O WITH GRAVE
0x99 0x00F4 # LATIN SMALL LETTER O WITH CIRCUMFLEX
0x9A 0x00F6 # LATIN SMALL LETTER O WITH DIAERESIS
0x9B 0x00F5 # LATIN SMALL LETTER O WITH TILDE
0x9C 0x00FA # LATIN SMALL LETTER U WITH ACUTE
0x9D 0x00F9 # LATIN SMALL LETTER U WITH GRAVE
0x9E 0x00FB # LATIN SMALL LETTER U WITH CIRCUMFLEX
0x9F 0x00FC # LATIN SMALL LETTER U WITH DIAERESIS
0xA0 <RL>+0x0020 # SPACE, right-left
0xA1 <RL>+0x0021 # EXCLAMATION MARK, right-left
0xA2 <RL>+0x0022 # QUOTATION MARK, right-left
0xA3 <RL>+0x0023 # NUMBER SIGN, right-left
0xA4 <RL>+0x0024 # DOLLAR SIGN, right-left
0xA5 <RL>+0x0025 # PERCENT SIGN, right-left
0xA6 0x20AA # NEW SHEQEL SIGN
0xA7 <RL>+0x0027 # APOSTROPHE, right-left
0xA8 <RL>+0x0029 # RIGHT PARENTHESIS, right-left # close parenthesis
0xA9 <RL>+0x0028 # LEFT PARENTHESIS, right-left # open parenthesis
0xAA <RL>+0x002A # ASTERISK, right-left
0xAB <RL>+0x002B # PLUS SIGN, right-left
0xAC <RL>+0x002C # COMMA, right-left
0xAD <RL>+0x002D # HYPHEN-MINUS, right-left
0xAE <RL>+0x002E # FULL STOP, right-left
0xAF <RL>+0x002F # SOLIDUS, right-left
0xB0 <RL>+0x0030 # DIGIT ZERO, right-left (need override)
0xB1 <RL>+0x0031 # DIGIT ONE, right-left (need override)
0xB2 <RL>+0x0032 # DIGIT TWO, right-left (need override)
0xB3 <RL>+0x0033 # DIGIT THREE, right-left (need override)
0xB4 <RL>+0x0034 # DIGIT FOUR, right-left (need override)
0xB5 <RL>+0x0035 # DIGIT FIVE, right-left (need override)
0xB6 <RL>+0x0036 # DIGIT SIX, right-left (need override)
0xB7 <RL>+0x0037 # DIGIT SEVEN, right-left (need override)
0xB8 <RL>+0x0038 # DIGIT EIGHT, right-left (need override)
0xB9 <RL>+0x0039 # DIGIT NINE, right-left (need override)
0xBA <RL>+0x003A # COLON, right-left
0xBB <RL>+0x003B # SEMICOLON, right-left
0xBC <RL>+0x003C # LESS-THAN SIGN, right-left
0xBD <RL>+0x003D # EQUALS SIGN, right-left
0xBE <RL>+0x003E # GREATER-THAN SIGN, right-left
0xBF <RL>+0x003F # QUESTION MARK, right-left
0xC0 0xF86A+0x05DC+0x05B9 # Hebrew ligature lamed holam
0xC1 <RL>+0x201E # DOUBLE LOW-9 QUOTATION MARK, right-left
0xC2 0xF89B # Hebrew canoral 1
0xC3 0xF89C # Hebrew canoral 2
0xC4 0xF89D # Hebrew canoral 3
0xC5 0xF89E # Hebrew canoral 4
0xC6 0x05BC # HEBREW POINT DAGESH OR MAPIQ
0xC7 0xFB4B # HEBREW LETTER VAV WITH HOLAM
0xC8 0xFB35 # HEBREW LETTER VAV WITH DAGESH
0xC9 <RL>+0x2026 # HORIZONTAL ELLIPSIS, right-left
0xCA <RL>+0x00A0 # NO-BREAK SPACE, right-left
0xCB 0x05B8 # HEBREW POINT QAMATS
0xCC 0x05B7 # HEBREW POINT PATAH
0xCD 0x05B5 # HEBREW POINT TSERE
0xCE 0x05B6 # HEBREW POINT SEGOL
0xCF 0x05B4 # HEBREW POINT HIRIQ
0xD0 <RL>+0x2013 # EN DASH, right-left
0xD1 <RL>+0x2014 # EM DASH, right-left
0xD2 <RL>+0x201C # LEFT DOUBLE QUOTATION MARK, right-left
0xD3 <RL>+0x201D # RIGHT DOUBLE QUOTATION MARK, right-left
0xD4 <RL>+0x2018 # LEFT SINGLE QUOTATION MARK, right-left
0xD5 <RL>+0x2019 # RIGHT SINGLE QUOTATION MARK, right-left
0xD6 0xFB2A # HEBREW LETTER SHIN WITH SHIN DOT
0xD7 0xFB2B # HEBREW LETTER SHIN WITH SIN DOT
0xD8 0x05BF # HEBREW POINT RAFE
0xD9 0x05B0 # HEBREW POINT SHEVA
0xDA 0x05B2 # HEBREW POINT HATAF PATAH
0xDB 0x05B1 # HEBREW POINT HATAF SEGOL
0xDC 0x05BB # HEBREW POINT QUBUTS
0xDD 0x05B9 # HEBREW POINT HOLAM
0xDE 0x05B8+0xF87F # HEBREW POINT QAMATS, alternate form "qamats qatan"
0xDF 0x05B3 # HEBREW POINT HATAF QAMATS
0xE0 0x05D0 # HEBREW LETTER ALEF
0xE1 0x05D1 # HEBREW LETTER BET
0xE2 0x05D2 # HEBREW LETTER GIMEL
0xE3 0x05D3 # HEBREW LETTER DALET
0xE4 0x05D4 # HEBREW LETTER HE
0xE5 0x05D5 # HEBREW LETTER VAV
0xE6 0x05D6 # HEBREW LETTER ZAYIN
0xE7 0x05D7 # HEBREW LETTER HET
0xE8 0x05D8 # HEBREW LETTER TET
0xE9 0x05D9 # HEBREW LETTER YOD
0xEA 0x05DA # HEBREW LETTER FINAL KAF
0xEB 0x05DB # HEBREW LETTER KAF
0xEC 0x05DC # HEBREW LETTER LAMED
0xED 0x05DD # HEBREW LETTER FINAL MEM
0xEE 0x05DE # HEBREW LETTER MEM
0xEF 0x05DF # HEBREW LETTER FINAL NUN
0xF0 0x05E0 # HEBREW LETTER NUN
0xF1 0x05E1 # HEBREW LETTER SAMEKH
0xF2 0x05E2 # HEBREW LETTER AYIN
0xF3 0x05E3 # HEBREW LETTER FINAL PE
0xF4 0x05E4 # HEBREW LETTER PE
0xF5 0x05E5 # HEBREW LETTER FINAL TSADI
0xF6 0x05E6 # HEBREW LETTER TSADI
0xF7 0x05E7 # HEBREW LETTER QOF
0xF8 0x05E8 # HEBREW LETTER RESH
0xF9 0x05E9 # HEBREW LETTER SHIN
0xFA 0x05EA # HEBREW LETTER TAV
0xFB <RL>+0x007D # RIGHT CURLY BRACKET, right-left
0xFC <RL>+0x005D # RIGHT SQUARE BRACKET, right-left
0xFD <RL>+0x007B # LEFT CURLY BRACKET, right-left
0xFE <RL>+0x005B # LEFT SQUARE BRACKET, right-left
0xFF <RL>+0x007C # VERTICAL LINE, right-left
File diff suppressed because it is too large. Load diff
File diff suppressed because it is too large. Load diff
@@ -0,0 +1,273 @@
#
# Name: cp10029_MacLatin2 to Unicode table
# Unicode version: 2.0
# Table version: 2.00
# Table format: Format A
# Date: 04/24/96
# Contact: Shawn.Steele@microsoft.com
#
# General notes: none
#
# Format: Three tab-separated columns
# Column #1 is the cp10029_MacLatin2 code (in hex)
# Column #2 is the Unicode (in hex as 0xXXXX)
# Column #3 is the Unicode name (follows a comment sign, '#')
#
# The entries are in cp10029_MacLatin2 order
#
0x00 0x0000 #NULL
0x01 0x0001 #START OF HEADING
0x02 0x0002 #START OF TEXT
0x03 0x0003 #END OF TEXT
0x04 0x0004 #END OF TRANSMISSION
0x05 0x0005 #ENQUIRY
0x06 0x0006 #ACKNOWLEDGE
0x07 0x0007 #BELL
0x08 0x0008 #BACKSPACE
0x09 0x0009 #HORIZONTAL TABULATION
0x0A 0x000A #LINE FEED
0x0B 0x000B #VERTICAL TABULATION
0x0C 0x000C #FORM FEED
0x0D 0x000D #CARRIAGE RETURN
0x0E 0x000E #SHIFT OUT
0x0F 0x000F #SHIFT IN
0x10 0x0010 #DATA LINK ESCAPE
0x11 0x0011 #DEVICE CONTROL ONE
0x12 0x0012 #DEVICE CONTROL TWO
0x13 0x0013 #DEVICE CONTROL THREE
0x14 0x0014 #DEVICE CONTROL FOUR
0x15 0x0015 #NEGATIVE ACKNOWLEDGE
0x16 0x0016 #SYNCHRONOUS IDLE
0x17 0x0017 #END OF TRANSMISSION BLOCK
0x18 0x0018 #CANCEL
0x19 0x0019 #END OF MEDIUM
0x1A 0x001A #SUBSTITUTE
0x1B 0x001B #ESCAPE
0x1C 0x001C #FILE SEPARATOR
0x1D 0x001D #GROUP SEPARATOR
0x1E 0x001E #RECORD SEPARATOR
0x1F 0x001F #UNIT SEPARATOR
0x20 0x0020 #SPACE
0x21 0x0021 #EXCLAMATION MARK
0x22 0x0022 #QUOTATION MARK
0x23 0x0023 #NUMBER SIGN
0x24 0x0024 #DOLLAR SIGN
0x25 0x0025 #PERCENT SIGN
0x26 0x0026 #AMPERSAND
0x27 0x0027 #APOSTROPHE
0x28 0x0028 #LEFT PARENTHESIS
0x29 0x0029 #RIGHT PARENTHESIS
0x2A 0x002A #ASTERISK
0x2B 0x002B #PLUS SIGN
0x2C 0x002C #COMMA
0x2D 0x002D #HYPHEN-MINUS
0x2E 0x002E #FULL STOP
0x2F 0x002F #SOLIDUS
0x30 0x0030 #DIGIT ZERO
0x31 0x0031 #DIGIT ONE
0x32 0x0032 #DIGIT TWO
0x33 0x0033 #DIGIT THREE
0x34 0x0034 #DIGIT FOUR
0x35 0x0035 #DIGIT FIVE
0x36 0x0036 #DIGIT SIX
0x37 0x0037 #DIGIT SEVEN
0x38 0x0038 #DIGIT EIGHT
0x39 0x0039 #DIGIT NINE
0x3A 0x003A #COLON
0x3B 0x003B #SEMICOLON
0x3C 0x003C #LESS-THAN SIGN
0x3D 0x003D #EQUALS SIGN
0x3E 0x003E #GREATER-THAN SIGN
0x3F 0x003F #QUESTION MARK
0x40 0x0040 #COMMERCIAL AT
0x41 0x0041 #LATIN CAPITAL LETTER A
0x42 0x0042 #LATIN CAPITAL LETTER B
0x43 0x0043 #LATIN CAPITAL LETTER C
0x44 0x0044 #LATIN CAPITAL LETTER D
0x45 0x0045 #LATIN CAPITAL LETTER E
0x46 0x0046 #LATIN CAPITAL LETTER F
0x47 0x0047 #LATIN CAPITAL LETTER G
0x48 0x0048 #LATIN CAPITAL LETTER H
0x49 0x0049 #LATIN CAPITAL LETTER I
0x4A 0x004A #LATIN CAPITAL LETTER J
0x4B 0x004B #LATIN CAPITAL LETTER K
0x4C 0x004C #LATIN CAPITAL LETTER L
0x4D 0x004D #LATIN CAPITAL LETTER M
0x4E 0x004E #LATIN CAPITAL LETTER N
0x4F 0x004F #LATIN CAPITAL LETTER O
0x50 0x0050 #LATIN CAPITAL LETTER P
0x51 0x0051 #LATIN CAPITAL LETTER Q
0x52 0x0052 #LATIN CAPITAL LETTER R
0x53 0x0053 #LATIN CAPITAL LETTER S
0x54 0x0054 #LATIN CAPITAL LETTER T
0x55 0x0055 #LATIN CAPITAL LETTER U
0x56 0x0056 #LATIN CAPITAL LETTER V
0x57 0x0057 #LATIN CAPITAL LETTER W
0x58 0x0058 #LATIN CAPITAL LETTER X
0x59 0x0059 #LATIN CAPITAL LETTER Y
0x5A 0x005A #LATIN CAPITAL LETTER Z
0x5B 0x005B #LEFT SQUARE BRACKET
0x5C 0x005C #REVERSE SOLIDUS
0x5D 0x005D #RIGHT SQUARE BRACKET
0x5E 0x005E #CIRCUMFLEX ACCENT
0x5F 0x005F #LOW LINE
0x60 0x0060 #GRAVE ACCENT
0x61 0x0061 #LATIN SMALL LETTER A
0x62 0x0062 #LATIN SMALL LETTER B
0x63 0x0063 #LATIN SMALL LETTER C
0x64 0x0064 #LATIN SMALL LETTER D
0x65 0x0065 #LATIN SMALL LETTER E
0x66 0x0066 #LATIN SMALL LETTER F
0x67 0x0067 #LATIN SMALL LETTER G
0x68 0x0068 #LATIN SMALL LETTER H
0x69 0x0069 #LATIN SMALL LETTER I
0x6A 0x006A #LATIN SMALL LETTER J
0x6B 0x006B #LATIN SMALL LETTER K
0x6C 0x006C #LATIN SMALL LETTER L
0x6D 0x006D #LATIN SMALL LETTER M
0x6E 0x006E #LATIN SMALL LETTER N
0x6F 0x006F #LATIN SMALL LETTER O
0x70 0x0070 #LATIN SMALL LETTER P
0x71 0x0071 #LATIN SMALL LETTER Q
0x72 0x0072 #LATIN SMALL LETTER R
0x73 0x0073 #LATIN SMALL LETTER S
0x74 0x0074 #LATIN SMALL LETTER T
0x75 0x0075 #LATIN SMALL LETTER U
0x76 0x0076 #LATIN SMALL LETTER V
0x77 0x0077 #LATIN SMALL LETTER W
0x78 0x0078 #LATIN SMALL LETTER X
0x79 0x0079 #LATIN SMALL LETTER Y
0x7A 0x007A #LATIN SMALL LETTER Z
0x7B 0x007B #LEFT CURLY BRACKET
0x7C 0x007C #VERTICAL LINE
0x7D 0x007D #RIGHT CURLY BRACKET
0x7E 0x007E #TILDE
0x7F 0x007F #DELETE
0x80 0x00C4 #LATIN CAPITAL LETTER A WITH DIAERESIS
0x81 0x0100 #LATIN CAPITAL LETTER A WITH MACRON
0x82 0x0101 #LATIN SMALL LETTER A WITH MACRON
0x83 0x00C9 #LATIN CAPITAL LETTER E WITH ACUTE
0x84 0x0104 #LATIN CAPITAL LETTER A WITH OGONEK
0x85 0x00D6 #LATIN CAPITAL LETTER O WITH DIAERESIS
0x86 0x00DC #LATIN CAPITAL LETTER U WITH DIAERESIS
0x87 0x00E1 #LATIN SMALL LETTER A WITH ACUTE
0x88 0x0105 #LATIN SMALL LETTER A WITH OGONEK
0x89 0x010C #LATIN CAPITAL LETTER C WITH CARON
0x8A 0x00E4 #LATIN SMALL LETTER A WITH DIAERESIS
0x8B 0x010D #LATIN SMALL LETTER C WITH CARON
0x8C 0x0106 #LATIN CAPITAL LETTER C WITH ACUTE
0x8D 0x0107 #LATIN SMALL LETTER C WITH ACUTE
0x8E 0x00E9 #LATIN SMALL LETTER E WITH ACUTE
0x8F 0x0179 #LATIN CAPITAL LETTER Z WITH ACUTE
0x90 0x017A #LATIN SMALL LETTER Z WITH ACUTE
0x91 0x010E #LATIN CAPITAL LETTER D WITH CARON
0x92 0x00ED #LATIN SMALL LETTER I WITH ACUTE
0x93 0x010F #LATIN SMALL LETTER D WITH CARON
0x94 0x0112 #LATIN CAPITAL LETTER E WITH MACRON
0x95 0x0113 #LATIN SMALL LETTER E WITH MACRON
0x96 0x0116 #LATIN CAPITAL LETTER E WITH DOT ABOVE
0x97 0x00F3 #LATIN SMALL LETTER O WITH ACUTE
0x98 0x0117 #LATIN SMALL LETTER E WITH DOT ABOVE
0x99 0x00F4 #LATIN SMALL LETTER O WITH CIRCUMFLEX
0x9A 0x00F6 #LATIN SMALL LETTER O WITH DIAERESIS
0x9B 0x00F5 #LATIN SMALL LETTER O WITH TILDE
0x9C 0x00FA #LATIN SMALL LETTER U WITH ACUTE
0x9D 0x011A #LATIN CAPITAL LETTER E WITH CARON
0x9E 0x011B #LATIN SMALL LETTER E WITH CARON
0x9F 0x00FC #LATIN SMALL LETTER U WITH DIAERESIS
0xA0 0x2020 #DAGGER
0xA1 0x00B0 #DEGREE SIGN
0xA2 0x0118 #LATIN CAPITAL LETTER E WITH OGONEK
0xA3 0x00A3 #POUND SIGN
0xA4 0x00A7 #SECTION SIGN
0xA5 0x2022 #BULLET
0xA6 0x00B6 #PILCROW SIGN
0xA7 0x00DF #LATIN SMALL LETTER SHARP S
0xA8 0x00AE #REGISTERED SIGN
0xA9 0x00A9 #COPYRIGHT SIGN
0xAA 0x2122 #TRADE MARK SIGN
0xAB 0x0119 #LATIN SMALL LETTER E WITH OGONEK
0xAC 0x00A8 #DIAERESIS
0xAD 0x2260 #NOT EQUAL TO
0xAE 0x0123 #LATIN SMALL LETTER G WITH CEDILLA
0xAF 0x012E #LATIN CAPITAL LETTER I WITH OGONEK
0xB0 0x012F #LATIN SMALL LETTER I WITH OGONEK
0xB1 0x012A #LATIN CAPITAL LETTER I WITH MACRON
0xB2 0x2264 #LESS-THAN OR EQUAL TO
0xB3 0x2265 #GREATER-THAN OR EQUAL TO
0xB4 0x012B #LATIN SMALL LETTER I WITH MACRON
0xB5 0x0136 #LATIN CAPITAL LETTER K WITH CEDILLA
0xB6 0x2202 #PARTIAL DIFFERENTIAL
0xB7 0x2211 #N-ARY SUMMATION
0xB8 0x0142 #LATIN SMALL LETTER L WITH STROKE
0xB9 0x013B #LATIN CAPITAL LETTER L WITH CEDILLA
0xBA 0x013C #LATIN SMALL LETTER L WITH CEDILLA
0xBB 0x013D #LATIN CAPITAL LETTER L WITH CARON
0xBC 0x013E #LATIN SMALL LETTER L WITH CARON
0xBD 0x0139 #LATIN CAPITAL LETTER L WITH ACUTE
0xBE 0x013A #LATIN SMALL LETTER L WITH ACUTE
0xBF 0x0145 #LATIN CAPITAL LETTER N WITH CEDILLA
0xC0 0x0146 #LATIN SMALL LETTER N WITH CEDILLA
0xC1 0x0143 #LATIN CAPITAL LETTER N WITH ACUTE
0xC2 0x00AC #NOT SIGN
0xC3 0x221A #SQUARE ROOT
0xC4 0x0144 #LATIN SMALL LETTER N WITH ACUTE
0xC5 0x0147 #LATIN CAPITAL LETTER N WITH CARON
0xC6 0x2206 #INCREMENT
0xC7 0x00AB #LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
0xC8 0x00BB #RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
0xC9 0x2026 #HORIZONTAL ELLIPSIS
0xCA 0x00A0 #NO-BREAK SPACE
0xCB 0x0148 #LATIN SMALL LETTER N WITH CARON
0xCC 0x0150 #LATIN CAPITAL LETTER O WITH DOUBLE ACUTE
0xCD 0x00D5 #LATIN CAPITAL LETTER O WITH TILDE
0xCE 0x0151 #LATIN SMALL LETTER O WITH DOUBLE ACUTE
0xCF 0x014C #LATIN CAPITAL LETTER O WITH MACRON
0xD0 0x2013 #EN DASH
0xD1 0x2014 #EM DASH
0xD2 0x201C #LEFT DOUBLE QUOTATION MARK
0xD3 0x201D #RIGHT DOUBLE QUOTATION MARK
0xD4 0x2018 #LEFT SINGLE QUOTATION MARK
0xD5 0x2019 #RIGHT SINGLE QUOTATION MARK
0xD6 0x00F7 #DIVISION SIGN
0xD7 0x25CA #LOZENGE
0xD8 0x014D #LATIN SMALL LETTER O WITH MACRON
0xD9 0x0154 #LATIN CAPITAL LETTER R WITH ACUTE
0xDA 0x0155 #LATIN SMALL LETTER R WITH ACUTE
0xDB 0x0158 #LATIN CAPITAL LETTER R WITH CARON
0xDC 0x2039 #SINGLE LEFT-POINTING ANGLE QUOTATION MARK
0xDD 0x203A #SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
0xDE 0x0159 #LATIN SMALL LETTER R WITH CARON
0xDF 0x0156 #LATIN CAPITAL LETTER R WITH CEDILLA
0xE0 0x0157 #LATIN SMALL LETTER R WITH CEDILLA
0xE1 0x0160 #LATIN CAPITAL LETTER S WITH CARON
0xE2 0x201A #SINGLE LOW-9 QUOTATION MARK
0xE3 0x201E #DOUBLE LOW-9 QUOTATION MARK
0xE4 0x0161 #LATIN SMALL LETTER S WITH CARON
0xE5 0x015A #LATIN CAPITAL LETTER S WITH ACUTE
0xE6 0x015B #LATIN SMALL LETTER S WITH ACUTE
0xE7 0x00C1 #LATIN CAPITAL LETTER A WITH ACUTE
0xE8 0x0164 #LATIN CAPITAL LETTER T WITH CARON
0xE9 0x0165 #LATIN SMALL LETTER T WITH CARON
0xEA 0x00CD #LATIN CAPITAL LETTER I WITH ACUTE
0xEB 0x017D #LATIN CAPITAL LETTER Z WITH CARON
0xEC 0x017E #LATIN SMALL LETTER Z WITH CARON
0xED 0x016A #LATIN CAPITAL LETTER U WITH MACRON
0xEE 0x00D3 #LATIN CAPITAL LETTER O WITH ACUTE
0xEF 0x00D4 #LATIN CAPITAL LETTER O WITH CIRCUMFLEX
0xF0 0x016B #LATIN SMALL LETTER U WITH MACRON
0xF1 0x016E #LATIN CAPITAL LETTER U WITH RING ABOVE
0xF2 0x00DA #LATIN CAPITAL LETTER U WITH ACUTE
0xF3 0x016F #LATIN SMALL LETTER U WITH RING ABOVE
0xF4 0x0170 #LATIN CAPITAL LETTER U WITH DOUBLE ACUTE
0xF5 0x0171 #LATIN SMALL LETTER U WITH DOUBLE ACUTE
0xF6 0x0172 #LATIN CAPITAL LETTER U WITH OGONEK
0xF7 0x0173 #LATIN SMALL LETTER U WITH OGONEK
0xF8 0x00DD #LATIN CAPITAL LETTER Y WITH ACUTE
0xF9 0x00FD #LATIN SMALL LETTER Y WITH ACUTE
0xFA 0x0137 #LATIN SMALL LETTER K WITH CEDILLA
0xFB 0x017B #LATIN CAPITAL LETTER Z WITH DOT ABOVE
0xFC 0x0141 #LATIN CAPITAL LETTER L WITH STROKE
0xFD 0x017C #LATIN SMALL LETTER Z WITH DOT ABOVE
0xFE 0x0122 #LATIN CAPITAL LETTER G WITH CEDILLA
0xFF 0x02C7 #CARON
@@ -0,0 +1,363 @@
#
# Contents: Map (external version) from Mac OS Romanian
# character set to Unicode 3.0 and later.
#
# Copyright: (c) 1995-2002, 2005 by Apple Computer, Inc., all rights
# reserved.
#
# Contact: charsets@apple.com
#
# Changes:
#
# c02 2005-Apr-05 Update header comments. Matches internal xml
# <c1.2> and Text Encoding Converter 2.0.
# b3,c1 2002-Dec-19 Update mappings for 0xAF, 0xBF, 0xDE, 0xDF
# to use new composed characters added in
# Unicode 3.0. Update URLs, notes. Matches
# internal utom<b3>.
# b02 1999-Sep-22 Encoding changed for Mac OS 8.5; change
# mapping of 0xDB from CURRENCY SIGN to EURO
# SIGN. Update contact e-mail address. Matches
# internal utom<b2>, ufrm<b2>, and Text
# Encoding Converter version 1.5.
# n05 1998-Feb-05 Minor update to header comments
# n03 1997-Dec-14 Update to match internal utom<n5>, ufrm<n16>:
# Change standard mapping for 0xBD from U+2126
# to its canonical decomposition, U+03A9.
# Change mapping of 0xAF,0xBF,0xDE,0xDF from
# composed S/T WITH CEDILLA to S/T with
# COMBINING COMMA BELOW (to match our
# decomposition mappings).
# n02 1995-Apr-15 First version (after fixing some typos).
# Matches internal ufrm<n4>.
#
# Standard header:
# ----------------
#
# Apple, the Apple logo, and Macintosh are trademarks of Apple
# Computer, Inc., registered in the United States and other countries.
# Unicode is a trademark of Unicode Inc. For the sake of brevity,
# throughout this document, "Macintosh" can be used to refer to
# Macintosh computers and "Unicode" can be used to refer to the
# Unicode standard.
#
# Apple Computer, Inc. ("Apple") makes no warranty or representation,
# either express or implied, with respect to this document and the
# included data, its quality, accuracy, or fitness for a particular
# purpose. In no event will Apple be liable for direct, indirect,
# special, incidental, or consequential damages resulting from any
# defect or inaccuracy in this document or the included data.
#
# These mapping tables and character lists are subject to change.
# The latest tables should be available from the following:
#
# <http://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/>
#
# For general information about Mac OS encodings and these mapping
# tables, see the file "README.TXT".
#
# Format:
# -------
#
# Three tab-separated columns;
# '#' begins a comment which continues to the end of the line.
# Column #1 is the Mac OS Romanian code (in hex as 0xNN)
# Column #2 is the corresponding Unicode (in hex as 0xNNNN)
# Column #3 is a comment containing the Unicode name
#
# The entries are in Mac OS Romanian code order.
#
# One of these mappings requires the use of a corporate character.
# See the file "CORPCHAR.TXT" and notes below.
#
# Control character mappings are not shown in this table, following
# the conventions of the standard UTC mapping tables. However, the
# Mac OS Romanian character set uses the standard control characters at
# 0x00-0x1F and 0x7F.
#
# Notes on Mac OS Romanian:
# -------------------------
#
# This is a legacy Mac OS encoding; in the Mac OS X Carbon and Cocoa
# environments, it is only supported via transcoding to and from
# Unicode.
#
# Mac OS Romanian is used only for Romanian.
#
# The Mac OS Romanian encoding shares the script code smRoman
# (0) with the standard Mac OS Roman encoding. To determine if
# the Romanian encoding is being used, you must also check if the
# system region code is 39, verRomania.
#
# This character set is a variant of standard Mac OS Roman, adding
# upper and lower A breve, S comma below, and T comma below. It
# has 6 code point differences from standard Mac OS Roman.
#
# Before Mac OS 8.5, code point 0xDB was CURRENCY SIGN, and was
# mapped to U+00A4. In Mac OS 8.5 and later versions, code point
# 0xDB is changed to EURO SIGN and maps to U+20AC; the standard
# Apple fonts are updated for Mac OS 8.5 to reflect this. There is
# a "currency sign" variant of the Mac OS Romanian encoding that
# still maps 0xDB to U+00A4; this can be used for older fonts.
#
# Unicode mapping issues and notes:
# ---------------------------------
#
# The following corporate zone Unicode character is used in this
# mapping:
#
# 0xF8FF Apple logo
#
# NOTE: The graphic image associated with the Apple logo character
# is not authorized for use without permission of Apple, and
# unauthorized use might constitute trademark infringement.
#
# Details of mapping changes in each version:
# -------------------------------------------
#
# Changes from version b02 to version b03/c01:
#
# - Update the mappings for 0xAF, 0xBF, 0xDE, 0xDF to use new
# composed Unicode characters 0x0218-0x021B added in Unicode 3.0;
# the previous mappings were to the equivalent decomposition
# sequences.
#
# Changes from version n05 to version b02:
#
# - Encoding changed for Mac OS 8.5; change mapping of 0xDB from
# CURRENCY SIGN (U+00A4) to EURO SIGN (U+20AC).
#
# Changes from version n02 to version n03:
#
# - Change mapping of 0xBD from U+2126 to its canonical
# decomposition, U+03A9.
# - Change mapping of 0xAF,0xBF,0xDE,0xDF from composed S or T
# WITH CEDILLA to S or T with COMBINING COMMA BELOW (to match
# our decomposition mappings).
#
##################
0x20 0x0020 # SPACE
0x21 0x0021 # EXCLAMATION MARK
0x22 0x0022 # QUOTATION MARK
0x23 0x0023 # NUMBER SIGN
0x24 0x0024 # DOLLAR SIGN
0x25 0x0025 # PERCENT SIGN
0x26 0x0026 # AMPERSAND
0x27 0x0027 # APOSTROPHE
0x28 0x0028 # LEFT PARENTHESIS
0x29 0x0029 # RIGHT PARENTHESIS
0x2A 0x002A # ASTERISK
0x2B 0x002B # PLUS SIGN
0x2C 0x002C # COMMA
0x2D 0x002D # HYPHEN-MINUS
0x2E 0x002E # FULL STOP
0x2F 0x002F # SOLIDUS
0x30 0x0030 # DIGIT ZERO
0x31 0x0031 # DIGIT ONE
0x32 0x0032 # DIGIT TWO
0x33 0x0033 # DIGIT THREE
0x34 0x0034 # DIGIT FOUR
0x35 0x0035 # DIGIT FIVE
0x36 0x0036 # DIGIT SIX
0x37 0x0037 # DIGIT SEVEN
0x38 0x0038 # DIGIT EIGHT
0x39 0x0039 # DIGIT NINE
0x3A 0x003A # COLON
0x3B 0x003B # SEMICOLON
0x3C 0x003C # LESS-THAN SIGN
0x3D 0x003D # EQUALS SIGN
0x3E 0x003E # GREATER-THAN SIGN
0x3F 0x003F # QUESTION MARK
0x40 0x0040 # COMMERCIAL AT
0x41 0x0041 # LATIN CAPITAL LETTER A
0x42 0x0042 # LATIN CAPITAL LETTER B
0x43 0x0043 # LATIN CAPITAL LETTER C
0x44 0x0044 # LATIN CAPITAL LETTER D
0x45 0x0045 # LATIN CAPITAL LETTER E
0x46 0x0046 # LATIN CAPITAL LETTER F
0x47 0x0047 # LATIN CAPITAL LETTER G
0x48 0x0048 # LATIN CAPITAL LETTER H
0x49 0x0049 # LATIN CAPITAL LETTER I
0x4A 0x004A # LATIN CAPITAL LETTER J
0x4B 0x004B # LATIN CAPITAL LETTER K
0x4C 0x004C # LATIN CAPITAL LETTER L
0x4D 0x004D # LATIN CAPITAL LETTER M
0x4E 0x004E # LATIN CAPITAL LETTER N
0x4F 0x004F # LATIN CAPITAL LETTER O
0x50 0x0050 # LATIN CAPITAL LETTER P
0x51 0x0051 # LATIN CAPITAL LETTER Q
0x52 0x0052 # LATIN CAPITAL LETTER R
0x53 0x0053 # LATIN CAPITAL LETTER S
0x54 0x0054 # LATIN CAPITAL LETTER T
0x55 0x0055 # LATIN CAPITAL LETTER U
0x56 0x0056 # LATIN CAPITAL LETTER V
0x57 0x0057 # LATIN CAPITAL LETTER W
0x58 0x0058 # LATIN CAPITAL LETTER X
0x59 0x0059 # LATIN CAPITAL LETTER Y
0x5A 0x005A # LATIN CAPITAL LETTER Z
0x5B 0x005B # LEFT SQUARE BRACKET
0x5C 0x005C # REVERSE SOLIDUS
0x5D 0x005D # RIGHT SQUARE BRACKET
0x5E 0x005E # CIRCUMFLEX ACCENT
0x5F 0x005F # LOW LINE
0x60 0x0060 # GRAVE ACCENT
0x61 0x0061 # LATIN SMALL LETTER A
0x62 0x0062 # LATIN SMALL LETTER B
0x63 0x0063 # LATIN SMALL LETTER C
0x64 0x0064 # LATIN SMALL LETTER D
0x65 0x0065 # LATIN SMALL LETTER E
0x66 0x0066 # LATIN SMALL LETTER F
0x67 0x0067 # LATIN SMALL LETTER G
0x68 0x0068 # LATIN SMALL LETTER H
0x69 0x0069 # LATIN SMALL LETTER I
0x6A 0x006A # LATIN SMALL LETTER J
0x6B 0x006B # LATIN SMALL LETTER K
0x6C 0x006C # LATIN SMALL LETTER L
0x6D 0x006D # LATIN SMALL LETTER M
0x6E 0x006E # LATIN SMALL LETTER N
0x6F 0x006F # LATIN SMALL LETTER O
0x70 0x0070 # LATIN SMALL LETTER P
0x71 0x0071 # LATIN SMALL LETTER Q
0x72 0x0072 # LATIN SMALL LETTER R
0x73 0x0073 # LATIN SMALL LETTER S
0x74 0x0074 # LATIN SMALL LETTER T
0x75 0x0075 # LATIN SMALL LETTER U
0x76 0x0076 # LATIN SMALL LETTER V
0x77 0x0077 # LATIN SMALL LETTER W
0x78 0x0078 # LATIN SMALL LETTER X
0x79 0x0079 # LATIN SMALL LETTER Y
0x7A 0x007A # LATIN SMALL LETTER Z
0x7B 0x007B # LEFT CURLY BRACKET
0x7C 0x007C # VERTICAL LINE
0x7D 0x007D # RIGHT CURLY BRACKET
0x7E 0x007E # TILDE
#
0x80 0x00C4 # LATIN CAPITAL LETTER A WITH DIAERESIS
0x81 0x00C5 # LATIN CAPITAL LETTER A WITH RING ABOVE
0x82 0x00C7 # LATIN CAPITAL LETTER C WITH CEDILLA
0x83 0x00C9 # LATIN CAPITAL LETTER E WITH ACUTE
0x84 0x00D1 # LATIN CAPITAL LETTER N WITH TILDE
0x85 0x00D6 # LATIN CAPITAL LETTER O WITH DIAERESIS
0x86 0x00DC # LATIN CAPITAL LETTER U WITH DIAERESIS
0x87 0x00E1 # LATIN SMALL LETTER A WITH ACUTE
0x88 0x00E0 # LATIN SMALL LETTER A WITH GRAVE
0x89 0x00E2 # LATIN SMALL LETTER A WITH CIRCUMFLEX
0x8A 0x00E4 # LATIN SMALL LETTER A WITH DIAERESIS
0x8B 0x00E3 # LATIN SMALL LETTER A WITH TILDE
0x8C 0x00E5 # LATIN SMALL LETTER A WITH RING ABOVE
0x8D 0x00E7 # LATIN SMALL LETTER C WITH CEDILLA
0x8E 0x00E9 # LATIN SMALL LETTER E WITH ACUTE
0x8F 0x00E8 # LATIN SMALL LETTER E WITH GRAVE
0x90 0x00EA # LATIN SMALL LETTER E WITH CIRCUMFLEX
0x91 0x00EB # LATIN SMALL LETTER E WITH DIAERESIS
0x92 0x00ED # LATIN SMALL LETTER I WITH ACUTE
0x93 0x00EC # LATIN SMALL LETTER I WITH GRAVE
0x94 0x00EE # LATIN SMALL LETTER I WITH CIRCUMFLEX
0x95 0x00EF # LATIN SMALL LETTER I WITH DIAERESIS
0x96 0x00F1 # LATIN SMALL LETTER N WITH TILDE
0x97 0x00F3 # LATIN SMALL LETTER O WITH ACUTE
0x98 0x00F2 # LATIN SMALL LETTER O WITH GRAVE
0x99 0x00F4 # LATIN SMALL LETTER O WITH CIRCUMFLEX
0x9A 0x00F6 # LATIN SMALL LETTER O WITH DIAERESIS
0x9B 0x00F5 # LATIN SMALL LETTER O WITH TILDE
0x9C 0x00FA # LATIN SMALL LETTER U WITH ACUTE
0x9D 0x00F9 # LATIN SMALL LETTER U WITH GRAVE
0x9E 0x00FB # LATIN SMALL LETTER U WITH CIRCUMFLEX
0x9F 0x00FC # LATIN SMALL LETTER U WITH DIAERESIS
0xA0 0x2020 # DAGGER
0xA1 0x00B0 # DEGREE SIGN
0xA2 0x00A2 # CENT SIGN
0xA3 0x00A3 # POUND SIGN
0xA4 0x00A7 # SECTION SIGN
0xA5 0x2022 # BULLET
0xA6 0x00B6 # PILCROW SIGN
0xA7 0x00DF # LATIN SMALL LETTER SHARP S
0xA8 0x00AE # REGISTERED SIGN
0xA9 0x00A9 # COPYRIGHT SIGN
0xAA 0x2122 # TRADE MARK SIGN
0xAB 0x00B4 # ACUTE ACCENT
0xAC 0x00A8 # DIAERESIS
0xAD 0x2260 # NOT EQUAL TO
0xAE 0x0102 # LATIN CAPITAL LETTER A WITH BREVE
0xAF 0x0218 # LATIN CAPITAL LETTER S WITH COMMA BELOW # for Unicode 3.0 and later
0xB0 0x221E # INFINITY
0xB1 0x00B1 # PLUS-MINUS SIGN
0xB2 0x2264 # LESS-THAN OR EQUAL TO
0xB3 0x2265 # GREATER-THAN OR EQUAL TO
0xB4 0x00A5 # YEN SIGN
0xB5 0x00B5 # MICRO SIGN
0xB6 0x2202 # PARTIAL DIFFERENTIAL
0xB7 0x2211 # N-ARY SUMMATION
0xB8 0x220F # N-ARY PRODUCT
0xB9 0x03C0 # GREEK SMALL LETTER PI
0xBA 0x222B # INTEGRAL
0xBB 0x00AA # FEMININE ORDINAL INDICATOR
0xBC 0x00BA # MASCULINE ORDINAL INDICATOR
0xBD 0x03A9 # GREEK CAPITAL LETTER OMEGA
0xBE 0x0103 # LATIN SMALL LETTER A WITH BREVE
0xBF 0x0219 # LATIN SMALL LETTER S WITH COMMA BELOW # for Unicode 3.0 and later
0xC0 0x00BF # INVERTED QUESTION MARK
0xC1 0x00A1 # INVERTED EXCLAMATION MARK
0xC2 0x00AC # NOT SIGN
0xC3 0x221A # SQUARE ROOT
0xC4 0x0192 # LATIN SMALL LETTER F WITH HOOK
0xC5 0x2248 # ALMOST EQUAL TO
0xC6 0x2206 # INCREMENT
0xC7 0x00AB # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
0xC8 0x00BB # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
0xC9 0x2026 # HORIZONTAL ELLIPSIS
0xCA 0x00A0 # NO-BREAK SPACE
0xCB 0x00C0 # LATIN CAPITAL LETTER A WITH GRAVE
0xCC 0x00C3 # LATIN CAPITAL LETTER A WITH TILDE
0xCD 0x00D5 # LATIN CAPITAL LETTER O WITH TILDE
0xCE 0x0152 # LATIN CAPITAL LIGATURE OE
0xCF 0x0153 # LATIN SMALL LIGATURE OE
0xD0 0x2013 # EN DASH
0xD1 0x2014 # EM DASH
0xD2 0x201C # LEFT DOUBLE QUOTATION MARK
0xD3 0x201D # RIGHT DOUBLE QUOTATION MARK
0xD4 0x2018 # LEFT SINGLE QUOTATION MARK
0xD5 0x2019 # RIGHT SINGLE QUOTATION MARK
0xD6 0x00F7 # DIVISION SIGN
0xD7 0x25CA # LOZENGE
0xD8 0x00FF # LATIN SMALL LETTER Y WITH DIAERESIS
0xD9 0x0178 # LATIN CAPITAL LETTER Y WITH DIAERESIS
0xDA 0x2044 # FRACTION SLASH
0xDB 0x20AC # EURO SIGN
0xDC 0x2039 # SINGLE LEFT-POINTING ANGLE QUOTATION MARK
0xDD 0x203A # SINGLE RIGHT-POINTING ANGLE QUOTATION MARK
0xDE 0x021A # LATIN CAPITAL LETTER T WITH COMMA BELOW # for Unicode 3.0 and later
0xDF 0x021B # LATIN SMALL LETTER T WITH COMMA BELOW # for Unicode 3.0 and later
0xE0 0x2021 # DOUBLE DAGGER
0xE1 0x00B7 # MIDDLE DOT
0xE2 0x201A # SINGLE LOW-9 QUOTATION MARK
0xE3 0x201E # DOUBLE LOW-9 QUOTATION MARK
0xE4 0x2030 # PER MILLE SIGN
0xE5 0x00C2 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
0xE6 0x00CA # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
0xE7 0x00C1 # LATIN CAPITAL LETTER A WITH ACUTE
0xE8 0x00CB # LATIN CAPITAL LETTER E WITH DIAERESIS
0xE9 0x00C8 # LATIN CAPITAL LETTER E WITH GRAVE
0xEA 0x00CD # LATIN CAPITAL LETTER I WITH ACUTE
0xEB 0x00CE # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
0xEC 0x00CF # LATIN CAPITAL LETTER I WITH DIAERESIS
0xED 0x00CC # LATIN CAPITAL LETTER I WITH GRAVE
0xEE 0x00D3 # LATIN CAPITAL LETTER O WITH ACUTE
0xEF 0x00D4 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
0xF0 0xF8FF # Apple logo
0xF1 0x00D2 # LATIN CAPITAL LETTER O WITH GRAVE
0xF2 0x00DA # LATIN CAPITAL LETTER U WITH ACUTE
0xF3 0x00DB # LATIN CAPITAL LETTER U WITH CIRCUMFLEX
0xF4 0x00D9 # LATIN CAPITAL LETTER U WITH GRAVE
0xF5 0x0131 # LATIN SMALL LETTER DOTLESS I
0xF6 0x02C6 # MODIFIER LETTER CIRCUMFLEX ACCENT
0xF7 0x02DC # SMALL TILDE
0xF8 0x00AF # MACRON
0xF9 0x02D8 # BREVE
0xFA 0x02D9 # DOT ABOVE
0xFB 0x02DA # RING ABOVE
0xFC 0x00B8 # CEDILLA
0xFD 0x02DD # DOUBLE ACUTE ACCENT
0xFE 0x02DB # OGONEK
0xFF 0x02C7 # CARON
@@ -0,0 +1,382 @@
#
# Contents: Map (external version) from Mac OS Thai
# character set to Unicode 3.2 and later.
#
# Copyright: (c) 1995-2002, 2005 by Apple Computer, Inc., all rights
# reserved.
#
# Contact: charsets@apple.com
#
# Changes:
#
# c02 2005-Apr-05 Update header comments. Matches internal xml
# <c1.1> and Text Encoding Converter 2.0.
# b3,c1 2002-Dec-19 Update mapping for 0xDB to use new Unicode
# 3.2 WORD JOINER instead of ZWNBSP (BOM).
# Update URLs. Matches internal utom<b3>.
# b02 1999-Sep-22 Update contact e-mail address. Matches
# internal utom<b1>, ufrm<b2>, and Text
# Encoding Converter version 1.5.
# n07 1998-Feb-05 Update to match internal utom<n5>, ufrm<n13>
# and Text Encoding Converter version 1.3:
# Use standard Unicodes plus transcoding hints
# instead of single corporate characters; see
# details below. Also update header comments
# to new format.
# n04 1995-Nov-17 First version (after fixing some typos).
# Matches internal ufrm<n6>.
#
# Standard header:
# ----------------
#
# Apple, the Apple logo, and Macintosh are trademarks of Apple
# Computer, Inc., registered in the United States and other countries.
# Unicode is a trademark of Unicode Inc. For the sake of brevity,
# throughout this document, "Macintosh" can be used to refer to
# Macintosh computers and "Unicode" can be used to refer to the
# Unicode standard.
#
# Apple Computer, Inc. ("Apple") makes no warranty or representation,
# either express or implied, with respect to this document and the
# included data, its quality, accuracy, or fitness for a particular
# purpose. In no event will Apple be liable for direct, indirect,
# special, incidental, or consequential damages resulting from any
# defect or inaccuracy in this document or the included data.
#
# These mapping tables and character lists are subject to change.
# The latest tables should be available from the following:
#
# <http://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/>
#
# For general information about Mac OS encodings and these mapping
# tables, see the file "README.TXT".
#
# Format:
# -------
#
# Three tab-separated columns;
# '#' begins a comment which continues to the end of the line.
# Column #1 is the Mac OS Thai code (in hex as 0xNN)
# Column #2 is the corresponding Unicode or Unicode sequence
# (in hex as 0xNNNN or 0xNNNN+0xNNNN).
# Column #3 is a comment containing the Unicode name
#
# The entries are in Mac OS Thai code order.
#
# Some of these mappings require the use of corporate characters.
# See the file "CORPCHAR.TXT" and notes below.
#
# Control character mappings are not shown in this table, following
# the conventions of the standard UTC mapping tables. However, the
# Mac OS Thai character set uses the standard control characters at
# 0x00-0x1F and 0x7F.
#
# Notes on Mac OS Thai:
# ---------------------
#
# This is a legacy Mac OS encoding; in the Mac OS X Carbon and Cocoa
# environments, it is only supported via transcoding to and from
# Unicode.
#
# Codes 0xA1-0xDA and 0xDF-0xFB are the character set from Thai
# standard TIS 620-2533, except that the following changes are
# made:
# 0xEE is TRADE MARK SIGN (instead of THAI CHARACTER YAMAKKAN)
# 0xFA is REGISTERED SIGN (instead of THAI CHARACTER ANGKHANKHU)
# 0xFB is COPYRIGHT SIGN (instead of THAI CHARACTER KHOMUT)
#
# Codes 0x80-0x82, 0x8D-0x8E, 0x91, 0x9D-0x9E, and 0xDB-0xDE are
# various additional punctuation marks (e.g. curly quotes,
# ellipsis), no-break space, and two special characters "word join"
# and "word break".
#
# Codes 0x83-0x8C, 0x8F, and 0x92-0x9C are for positional variants
# of the upper vowels, tone marks, and other signs at 0xD1,
# 0xD4-0xD7, and 0xE7-0xED. The positional variants would normally
# be considered presentation forms only and not characters. In most
# cases they are not typed directly; they are selected automatically
# at display time by the WorldScript software. However, using the
# Thai-DTP keyboard, the presentation forms can in fact be typed
# directly using dead keys. Thus they must be treated as real
# characters in the Mac OS Thai encoding. They are mapped using
# variant tags; see below.
#
# Several code points are undefined and unused (they cannot be
# typed using any of the Mac OS Thai keyboard layouts): 0x90, 0x9F,
# 0xFC-0xFE. These are not shown in the table below.
#
# Unicode mapping issues and notes:
# ---------------------------------
#
# The goals in the Apple mappings provided here are:
# - Ensure roundtrip mapping from every character in the Mac OS Thai
# character set to Unicode and back
# - Use standard Unicode characters as much as possible, to maximize
# interchangeability of the resulting Unicode text. Whenever possible,
# avoid having content carried by private-use characters.
#
# To satisfy both goals, we use private use characters to mark variants
# that are similar to a sequence of one or more standard Unicode
# characters.
#
# Apple has defined a block of 32 corporate characters as "transcoding
# hints." These are used in combination with standard Unicode characters
# to force them to be treated in a special way for mapping to other
# encodings; they have no other effect. Sixteen of these transcoding
# hints are "grouping hints" - they indicate that the next 2-4 Unicode
# characters should be treated as a single entity for transcoding. The
# other sixteen transcoding hints are "variant tags" - they are like
# combining characters, and can follow a standard Unicode (or a sequence
# consisting of a base character and other combining characters) to
# cause it to be treated in a special way for transcoding. These always
# terminate a combining-character sequence.
#
# The transcoding coding hints used in this mapping table are four
# variant tags in the range 0xF873-75. Since these are combined with
# standard Unicode characters, some characters in the Mac OS Thai
# character set map to a sequence of two Unicodes instead of a single
# Unicode character. For example, the Mac OS Thai character at 0x83 is a
# low-left positional variant of THAI CHARACTER MAI EK (the standard
# mapping is for the abstract character at 0xE8). So 0x83 is mapped to
# 0x0E48 (THAI CHARACTER MAI EK) + 0xF875 (a variant tag).
#
# Details of mapping changes in each version:
# -------------------------------------------
#
# Changes from version b02 to version b03/c01:
#
# - Update mapping for 0xDB to use new Unicode 3.2 character U+2060
# WORD JOINER instead of U+FEFF ZERO WIDTH NO-BREAK SPACE (BOM)
#
# Changes from version n04 to version n07:
#
# - Changed mappings of the positional variants to use standard
# Unicodes + transcoding hint, instead of using single corporate
# zone characters. This affected the mappings for the following:
# 0x83-08C, 0x8F, 0x92-0x9C
#
# - Just comment out unused code points in the table, instead
# of mapping them to U+FFFD.
#
##################
0x20 0x0020 # SPACE
0x21 0x0021 # EXCLAMATION MARK
0x22 0x0022 # QUOTATION MARK
0x23 0x0023 # NUMBER SIGN
0x24 0x0024 # DOLLAR SIGN
0x25 0x0025 # PERCENT SIGN
0x26 0x0026 # AMPERSAND
0x27 0x0027 # APOSTROPHE
0x28 0x0028 # LEFT PARENTHESIS
0x29 0x0029 # RIGHT PARENTHESIS
0x2A 0x002A # ASTERISK
0x2B 0x002B # PLUS SIGN
0x2C 0x002C # COMMA
0x2D 0x002D # HYPHEN-MINUS
0x2E 0x002E # FULL STOP
0x2F 0x002F # SOLIDUS
0x30 0x0030 # DIGIT ZERO
0x31 0x0031 # DIGIT ONE
0x32 0x0032 # DIGIT TWO
0x33 0x0033 # DIGIT THREE
0x34 0x0034 # DIGIT FOUR
0x35 0x0035 # DIGIT FIVE
0x36 0x0036 # DIGIT SIX
0x37 0x0037 # DIGIT SEVEN
0x38 0x0038 # DIGIT EIGHT
0x39 0x0039 # DIGIT NINE
0x3A 0x003A # COLON
0x3B 0x003B # SEMICOLON
0x3C 0x003C # LESS-THAN SIGN
0x3D 0x003D # EQUALS SIGN
0x3E 0x003E # GREATER-THAN SIGN
0x3F 0x003F # QUESTION MARK
0x40 0x0040 # COMMERCIAL AT
0x41 0x0041 # LATIN CAPITAL LETTER A
0x42 0x0042 # LATIN CAPITAL LETTER B
0x43 0x0043 # LATIN CAPITAL LETTER C
0x44 0x0044 # LATIN CAPITAL LETTER D
0x45 0x0045 # LATIN CAPITAL LETTER E
0x46 0x0046 # LATIN CAPITAL LETTER F
0x47 0x0047 # LATIN CAPITAL LETTER G
0x48 0x0048 # LATIN CAPITAL LETTER H
0x49 0x0049 # LATIN CAPITAL LETTER I
0x4A 0x004A # LATIN CAPITAL LETTER J
0x4B 0x004B # LATIN CAPITAL LETTER K
0x4C 0x004C # LATIN CAPITAL LETTER L
0x4D 0x004D # LATIN CAPITAL LETTER M
0x4E 0x004E # LATIN CAPITAL LETTER N
0x4F 0x004F # LATIN CAPITAL LETTER O
0x50 0x0050 # LATIN CAPITAL LETTER P
0x51 0x0051 # LATIN CAPITAL LETTER Q
0x52 0x0052 # LATIN CAPITAL LETTER R
0x53 0x0053 # LATIN CAPITAL LETTER S
0x54 0x0054 # LATIN CAPITAL LETTER T
0x55 0x0055 # LATIN CAPITAL LETTER U
0x56 0x0056 # LATIN CAPITAL LETTER V
0x57 0x0057 # LATIN CAPITAL LETTER W
0x58 0x0058 # LATIN CAPITAL LETTER X
0x59 0x0059 # LATIN CAPITAL LETTER Y
0x5A 0x005A # LATIN CAPITAL LETTER Z
0x5B 0x005B # LEFT SQUARE BRACKET
0x5C 0x005C # REVERSE SOLIDUS
0x5D 0x005D # RIGHT SQUARE BRACKET
0x5E 0x005E # CIRCUMFLEX ACCENT
0x5F 0x005F # LOW LINE
0x60 0x0060 # GRAVE ACCENT
0x61 0x0061 # LATIN SMALL LETTER A
0x62 0x0062 # LATIN SMALL LETTER B
0x63 0x0063 # LATIN SMALL LETTER C
0x64 0x0064 # LATIN SMALL LETTER D
0x65 0x0065 # LATIN SMALL LETTER E
0x66 0x0066 # LATIN SMALL LETTER F
0x67 0x0067 # LATIN SMALL LETTER G
0x68 0x0068 # LATIN SMALL LETTER H
0x69 0x0069 # LATIN SMALL LETTER I
0x6A 0x006A # LATIN SMALL LETTER J
0x6B 0x006B # LATIN SMALL LETTER K
0x6C 0x006C # LATIN SMALL LETTER L
0x6D 0x006D # LATIN SMALL LETTER M
0x6E 0x006E # LATIN SMALL LETTER N
0x6F 0x006F # LATIN SMALL LETTER O
0x70 0x0070 # LATIN SMALL LETTER P
0x71 0x0071 # LATIN SMALL LETTER Q
0x72 0x0072 # LATIN SMALL LETTER R
0x73 0x0073 # LATIN SMALL LETTER S
0x74 0x0074 # LATIN SMALL LETTER T
0x75 0x0075 # LATIN SMALL LETTER U
0x76 0x0076 # LATIN SMALL LETTER V
0x77 0x0077 # LATIN SMALL LETTER W
0x78 0x0078 # LATIN SMALL LETTER X
0x79 0x0079 # LATIN SMALL LETTER Y
0x7A 0x007A # LATIN SMALL LETTER Z
0x7B 0x007B # LEFT CURLY BRACKET
0x7C 0x007C # VERTICAL LINE
0x7D 0x007D # RIGHT CURLY BRACKET
0x7E 0x007E # TILDE
#
0x80 0x00AB # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
0x81 0x00BB # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
0x82 0x2026 # HORIZONTAL ELLIPSIS
0x83 0x0E48+0xF875 # THAI CHARACTER MAI EK, low left position
0x84 0x0E49+0xF875 # THAI CHARACTER MAI THO, low left position
0x85 0x0E4A+0xF875 # THAI CHARACTER MAI TRI, low left position
0x86 0x0E4B+0xF875 # THAI CHARACTER MAI CHATTAWA, low left position
0x87 0x0E4C+0xF875 # THAI CHARACTER THANTHAKHAT, low left position
0x88 0x0E48+0xF873 # THAI CHARACTER MAI EK, low position
0x89 0x0E49+0xF873 # THAI CHARACTER MAI THO, low position
0x8A 0x0E4A+0xF873 # THAI CHARACTER MAI TRI, low position
0x8B 0x0E4B+0xF873 # THAI CHARACTER MAI CHATTAWA, low position
0x8C 0x0E4C+0xF873 # THAI CHARACTER THANTHAKHAT, low position
0x8D 0x201C # LEFT DOUBLE QUOTATION MARK
0x8E 0x201D # RIGHT DOUBLE QUOTATION MARK
0x8F 0x0E4D+0xF874 # THAI CHARACTER NIKHAHIT, left position
#
0x91 0x2022 # BULLET
0x92 0x0E31+0xF874 # THAI CHARACTER MAI HAN-AKAT, left position
0x93 0x0E47+0xF874 # THAI CHARACTER MAITAIKHU, left position
0x94 0x0E34+0xF874 # THAI CHARACTER SARA I, left position
0x95 0x0E35+0xF874 # THAI CHARACTER SARA II, left position
0x96 0x0E36+0xF874 # THAI CHARACTER SARA UE, left position
0x97 0x0E37+0xF874 # THAI CHARACTER SARA UEE, left position
0x98 0x0E48+0xF874 # THAI CHARACTER MAI EK, left position
0x99 0x0E49+0xF874 # THAI CHARACTER MAI THO, left position
0x9A 0x0E4A+0xF874 # THAI CHARACTER MAI TRI, left position
0x9B 0x0E4B+0xF874 # THAI CHARACTER MAI CHATTAWA, left position
0x9C 0x0E4C+0xF874 # THAI CHARACTER THANTHAKHAT, left position
0x9D 0x2018 # LEFT SINGLE QUOTATION MARK
0x9E 0x2019 # RIGHT SINGLE QUOTATION MARK
#
0xA0 0x00A0 # NO-BREAK SPACE
0xA1 0x0E01 # THAI CHARACTER KO KAI
0xA2 0x0E02 # THAI CHARACTER KHO KHAI
0xA3 0x0E03 # THAI CHARACTER KHO KHUAT
0xA4 0x0E04 # THAI CHARACTER KHO KHWAI
0xA5 0x0E05 # THAI CHARACTER KHO KHON
0xA6 0x0E06 # THAI CHARACTER KHO RAKHANG
0xA7 0x0E07 # THAI CHARACTER NGO NGU
0xA8 0x0E08 # THAI CHARACTER CHO CHAN
0xA9 0x0E09 # THAI CHARACTER CHO CHING
0xAA 0x0E0A # THAI CHARACTER CHO CHANG
0xAB 0x0E0B # THAI CHARACTER SO SO
0xAC 0x0E0C # THAI CHARACTER CHO CHOE
0xAD 0x0E0D # THAI CHARACTER YO YING
0xAE 0x0E0E # THAI CHARACTER DO CHADA
0xAF 0x0E0F # THAI CHARACTER TO PATAK
0xB0 0x0E10 # THAI CHARACTER THO THAN
0xB1 0x0E11 # THAI CHARACTER THO NANGMONTHO
0xB2 0x0E12 # THAI CHARACTER THO PHUTHAO
0xB3 0x0E13 # THAI CHARACTER NO NEN
0xB4 0x0E14 # THAI CHARACTER DO DEK
0xB5 0x0E15 # THAI CHARACTER TO TAO
0xB6 0x0E16 # THAI CHARACTER THO THUNG
0xB7 0x0E17 # THAI CHARACTER THO THAHAN
0xB8 0x0E18 # THAI CHARACTER THO THONG
0xB9 0x0E19 # THAI CHARACTER NO NU
0xBA 0x0E1A # THAI CHARACTER BO BAIMAI
0xBB 0x0E1B # THAI CHARACTER PO PLA
0xBC 0x0E1C # THAI CHARACTER PHO PHUNG
0xBD 0x0E1D # THAI CHARACTER FO FA
0xBE 0x0E1E # THAI CHARACTER PHO PHAN
0xBF 0x0E1F # THAI CHARACTER FO FAN
0xC0 0x0E20 # THAI CHARACTER PHO SAMPHAO
0xC1 0x0E21 # THAI CHARACTER MO MA
0xC2 0x0E22 # THAI CHARACTER YO YAK
0xC3 0x0E23 # THAI CHARACTER RO RUA
0xC4 0x0E24 # THAI CHARACTER RU
0xC5 0x0E25 # THAI CHARACTER LO LING
0xC6 0x0E26 # THAI CHARACTER LU
0xC7 0x0E27 # THAI CHARACTER WO WAEN
0xC8 0x0E28 # THAI CHARACTER SO SALA
0xC9 0x0E29 # THAI CHARACTER SO RUSI
0xCA 0x0E2A # THAI CHARACTER SO SUA
0xCB 0x0E2B # THAI CHARACTER HO HIP
0xCC 0x0E2C # THAI CHARACTER LO CHULA
0xCD 0x0E2D # THAI CHARACTER O ANG
0xCE 0x0E2E # THAI CHARACTER HO NOKHUK
0xCF 0x0E2F # THAI CHARACTER PAIYANNOI
0xD0 0x0E30 # THAI CHARACTER SARA A
0xD1 0x0E31 # THAI CHARACTER MAI HAN-AKAT
0xD2 0x0E32 # THAI CHARACTER SARA AA
0xD3 0x0E33 # THAI CHARACTER SARA AM
0xD4 0x0E34 # THAI CHARACTER SARA I
0xD5 0x0E35 # THAI CHARACTER SARA II
0xD6 0x0E36 # THAI CHARACTER SARA UE
0xD7 0x0E37 # THAI CHARACTER SARA UEE
0xD8 0x0E38 # THAI CHARACTER SARA U
0xD9 0x0E39 # THAI CHARACTER SARA UU
0xDA 0x0E3A # THAI CHARACTER PHINTHU
0xDB 0x2060 # WORD JOINER # for Unicode 3.2 and later
0xDC 0x200B # ZERO WIDTH SPACE
0xDD 0x2013 # EN DASH
0xDE 0x2014 # EM DASH
0xDF 0x0E3F # THAI CURRENCY SYMBOL BAHT
0xE0 0x0E40 # THAI CHARACTER SARA E
0xE1 0x0E41 # THAI CHARACTER SARA AE
0xE2 0x0E42 # THAI CHARACTER SARA O
0xE3 0x0E43 # THAI CHARACTER SARA AI MAIMUAN
0xE4 0x0E44 # THAI CHARACTER SARA AI MAIMALAI
0xE5 0x0E45 # THAI CHARACTER LAKKHANGYAO
0xE6 0x0E46 # THAI CHARACTER MAIYAMOK
0xE7 0x0E47 # THAI CHARACTER MAITAIKHU
0xE8 0x0E48 # THAI CHARACTER MAI EK
0xE9 0x0E49 # THAI CHARACTER MAI THO
0xEA 0x0E4A # THAI CHARACTER MAI TRI
0xEB 0x0E4B # THAI CHARACTER MAI CHATTAWA
0xEC 0x0E4C # THAI CHARACTER THANTHAKHAT
0xED 0x0E4D # THAI CHARACTER NIKHAHIT
0xEE 0x2122 # TRADE MARK SIGN
0xEF 0x0E4F # THAI CHARACTER FONGMAN
0xF0 0x0E50 # THAI DIGIT ZERO
0xF1 0x0E51 # THAI DIGIT ONE
0xF2 0x0E52 # THAI DIGIT TWO
0xF3 0x0E53 # THAI DIGIT THREE
0xF4 0x0E54 # THAI DIGIT FOUR
0xF5 0x0E55 # THAI DIGIT FIVE
0xF6 0x0E56 # THAI DIGIT SIX
0xF7 0x0E57 # THAI DIGIT SEVEN
0xF8 0x0E58 # THAI DIGIT EIGHT
0xF9 0x0E59 # THAI DIGIT NINE
0xFA 0x00AE # REGISTERED SIGN
0xFB 0x00A9 # COPYRIGHT SIGN
@@ -0,0 +1,339 @@
#
# Contents: Map (external version) from Mac OS Turkish
# character set to Unicode 2.1 and later.
#
# Copyright: (c) 1995-2002, 2005 by Apple Computer, Inc., all rights
# reserved.
#
# Contact: charsets@apple.com
#
# Changes:
#
# c02 2005-Apr-05 Update header comments. Matches internal xml
# <c1.1> and Text Encoding Converter 2.0.
# b3,c1 2002-Dec-19 Update URLs, notes. Matches internal
# utom<b1>.
# b02 1999-Sep-22 Update contact e-mail address. Matches
# internal utom<b1>, ufrm<b1>, and Text
# Encoding Converter version 1.5.
# n05 1998-Feb-05 Minor update to header comments
# n03 1997-Dec-14 Update to match internal utom<n5>, ufrm<n15>:
# Change standard mapping for 0xBD from U+2126
# to its canonical decomposition, U+03A9.
# n02 1995-Apr-15 First version (after fixing some typos).
# Matches internal ufrm<n4>.
#
# Standard header:
# ----------------
#
# Apple, the Apple logo, and Macintosh are trademarks of Apple
# Computer, Inc., registered in the United States and other countries.
# Unicode is a trademark of Unicode Inc. For the sake of brevity,
# throughout this document, "Macintosh" can be used to refer to
# Macintosh computers and "Unicode" can be used to refer to the
# Unicode standard.
#
# Apple Computer, Inc. ("Apple") makes no warranty or representation,
# either express or implied, with respect to this document and the
# included data, its quality, accuracy, or fitness for a particular
# purpose. In no event will Apple be liable for direct, indirect,
# special, incidental, or consequential damages resulting from any
# defect or inaccuracy in this document or the included data.
#
# These mapping tables and character lists are subject to change.
# The latest tables should be available from the following:
#
# <http://www.unicode.org/Public/MAPPINGS/VENDORS/APPLE/>
#
# For general information about Mac OS encodings and these mapping
# tables, see the file "README.TXT".
#
# Format:
# -------
#
# Three tab-separated columns;
# '#' begins a comment which continues to the end of the line.
# Column #1 is the Mac OS Turkish code (in hex as 0xNN)
# Column #2 is the corresponding Unicode (in hex as 0xNNNN)
# Column #3 is a comment containing the Unicode name
#
# The entries are in Mac OS Turkish code order.
#
# Two of these mappings requires the use of a corporate character.
# See the file "CORPCHAR.TXT" and notes below.
#
# Control character mappings are not shown in this table, following
# the conventions of the standard UTC mapping tables. However, the
# Mac OS Turkish character set uses the standard control characters at
# 0x00-0x1F and 0x7F.
#
# Notes on Mac OS Turkish:
# ------------------------
#
# This is a legacy Mac OS encoding; in the Mac OS X Carbon and Cocoa
# environments, it is only supported via transcoding to and from
# Unicode.
#
# Mac OS Turkish is used for Turkish.
#
# The Mac OS Turkish encoding shares the script code smRoman
# (0) with the Mac OS Roman encoding. To determine if the Turkish
# encoding is being used, you must also check if the system region
# code is 24, verTurkey.
#
# This character set is a variant of standard Mac OS Roman. It adds
# upper & lower G with breve, upper & lower S with cedilla, upper I
# with dot, and moves the dotless lower i from its position at 0xF5
# in standard Mac OS Roman to a position at 0xDD here (leaving the
# 0xF5 code point undefined in Mac OS Turkish). This gives a total
# of 7 code point differences from standard Mac OS Roman.
#
# Unicode mapping issues and notes:
# ---------------------------------
#
# The following corporate zone Unicode characters are used in this
# mapping:
#
# 0xF8A0 undefined1, used to map the single undefined code point
# in Mac OS Turkish (to obtain roundtrip fidelity for all
# code points).
# 0xF8FF Apple logo
#
# NOTE: The graphic image associated with the Apple logo character
# is not authorized for use without permission of Apple, and
# unauthorized use might constitute trademark infringement.
#
# Details of mapping changes in each version:
# -------------------------------------------
#
# Changes from version n02 to version n03:
#
# - Change mapping of 0xBD from U+2126 to its canonical
# decomposition, U+03A9.
#
##################
0x20 0x0020 # SPACE
0x21 0x0021 # EXCLAMATION MARK
0x22 0x0022 # QUOTATION MARK
0x23 0x0023 # NUMBER SIGN
0x24 0x0024 # DOLLAR SIGN
0x25 0x0025 # PERCENT SIGN
0x26 0x0026 # AMPERSAND
0x27 0x0027 # APOSTROPHE
0x28 0x0028 # LEFT PARENTHESIS
0x29 0x0029 # RIGHT PARENTHESIS
0x2A 0x002A # ASTERISK
0x2B 0x002B # PLUS SIGN
0x2C 0x002C # COMMA
0x2D 0x002D # HYPHEN-MINUS
0x2E 0x002E # FULL STOP
0x2F 0x002F # SOLIDUS
0x30 0x0030 # DIGIT ZERO
0x31 0x0031 # DIGIT ONE
0x32 0x0032 # DIGIT TWO
0x33 0x0033 # DIGIT THREE
0x34 0x0034 # DIGIT FOUR
0x35 0x0035 # DIGIT FIVE
0x36 0x0036 # DIGIT SIX
0x37 0x0037 # DIGIT SEVEN
0x38 0x0038 # DIGIT EIGHT
0x39 0x0039 # DIGIT NINE
0x3A 0x003A # COLON
0x3B 0x003B # SEMICOLON
0x3C 0x003C # LESS-THAN SIGN
0x3D 0x003D # EQUALS SIGN
0x3E 0x003E # GREATER-THAN SIGN
0x3F 0x003F # QUESTION MARK
0x40 0x0040 # COMMERCIAL AT
0x41 0x0041 # LATIN CAPITAL LETTER A
0x42 0x0042 # LATIN CAPITAL LETTER B
0x43 0x0043 # LATIN CAPITAL LETTER C
0x44 0x0044 # LATIN CAPITAL LETTER D
0x45 0x0045 # LATIN CAPITAL LETTER E
0x46 0x0046 # LATIN CAPITAL LETTER F
0x47 0x0047 # LATIN CAPITAL LETTER G
0x48 0x0048 # LATIN CAPITAL LETTER H
0x49 0x0049 # LATIN CAPITAL LETTER I
0x4A 0x004A # LATIN CAPITAL LETTER J
0x4B 0x004B # LATIN CAPITAL LETTER K
0x4C 0x004C # LATIN CAPITAL LETTER L
0x4D 0x004D # LATIN CAPITAL LETTER M
0x4E 0x004E # LATIN CAPITAL LETTER N
0x4F 0x004F # LATIN CAPITAL LETTER O
0x50 0x0050 # LATIN CAPITAL LETTER P
0x51 0x0051 # LATIN CAPITAL LETTER Q
0x52 0x0052 # LATIN CAPITAL LETTER R
0x53 0x0053 # LATIN CAPITAL LETTER S
0x54 0x0054 # LATIN CAPITAL LETTER T
0x55 0x0055 # LATIN CAPITAL LETTER U
0x56 0x0056 # LATIN CAPITAL LETTER V
0x57 0x0057 # LATIN CAPITAL LETTER W
0x58 0x0058 # LATIN CAPITAL LETTER X
0x59 0x0059 # LATIN CAPITAL LETTER Y
0x5A 0x005A # LATIN CAPITAL LETTER Z
0x5B 0x005B # LEFT SQUARE BRACKET
0x5C 0x005C # REVERSE SOLIDUS
0x5D 0x005D # RIGHT SQUARE BRACKET
0x5E 0x005E # CIRCUMFLEX ACCENT
0x5F 0x005F # LOW LINE
0x60 0x0060 # GRAVE ACCENT
0x61 0x0061 # LATIN SMALL LETTER A
0x62 0x0062 # LATIN SMALL LETTER B
0x63 0x0063 # LATIN SMALL LETTER C
0x64 0x0064 # LATIN SMALL LETTER D
0x65 0x0065 # LATIN SMALL LETTER E
0x66 0x0066 # LATIN SMALL LETTER F
0x67 0x0067 # LATIN SMALL LETTER G
0x68 0x0068 # LATIN SMALL LETTER H
0x69 0x0069 # LATIN SMALL LETTER I
0x6A 0x006A # LATIN SMALL LETTER J
0x6B 0x006B # LATIN SMALL LETTER K
0x6C 0x006C # LATIN SMALL LETTER L
0x6D 0x006D # LATIN SMALL LETTER M
0x6E 0x006E # LATIN SMALL LETTER N
0x6F 0x006F # LATIN SMALL LETTER O
0x70 0x0070 # LATIN SMALL LETTER P
0x71 0x0071 # LATIN SMALL LETTER Q
0x72 0x0072 # LATIN SMALL LETTER R
0x73 0x0073 # LATIN SMALL LETTER S
0x74 0x0074 # LATIN SMALL LETTER T
0x75 0x0075 # LATIN SMALL LETTER U
0x76 0x0076 # LATIN SMALL LETTER V
0x77 0x0077 # LATIN SMALL LETTER W
0x78 0x0078 # LATIN SMALL LETTER X
0x79 0x0079 # LATIN SMALL LETTER Y
0x7A 0x007A # LATIN SMALL LETTER Z
0x7B 0x007B # LEFT CURLY BRACKET
0x7C 0x007C # VERTICAL LINE
0x7D 0x007D # RIGHT CURLY BRACKET
0x7E 0x007E # TILDE
#
0x80 0x00C4 # LATIN CAPITAL LETTER A WITH DIAERESIS
0x81 0x00C5 # LATIN CAPITAL LETTER A WITH RING ABOVE
0x82 0x00C7 # LATIN CAPITAL LETTER C WITH CEDILLA
0x83 0x00C9 # LATIN CAPITAL LETTER E WITH ACUTE
0x84 0x00D1 # LATIN CAPITAL LETTER N WITH TILDE
0x85 0x00D6 # LATIN CAPITAL LETTER O WITH DIAERESIS
0x86 0x00DC # LATIN CAPITAL LETTER U WITH DIAERESIS
0x87 0x00E1 # LATIN SMALL LETTER A WITH ACUTE
0x88 0x00E0 # LATIN SMALL LETTER A WITH GRAVE
0x89 0x00E2 # LATIN SMALL LETTER A WITH CIRCUMFLEX
0x8A 0x00E4 # LATIN SMALL LETTER A WITH DIAERESIS
0x8B 0x00E3 # LATIN SMALL LETTER A WITH TILDE
0x8C 0x00E5 # LATIN SMALL LETTER A WITH RING ABOVE
0x8D 0x00E7 # LATIN SMALL LETTER C WITH CEDILLA
0x8E 0x00E9 # LATIN SMALL LETTER E WITH ACUTE
0x8F 0x00E8 # LATIN SMALL LETTER E WITH GRAVE
0x90 0x00EA # LATIN SMALL LETTER E WITH CIRCUMFLEX
0x91 0x00EB # LATIN SMALL LETTER E WITH DIAERESIS
0x92 0x00ED # LATIN SMALL LETTER I WITH ACUTE
0x93 0x00EC # LATIN SMALL LETTER I WITH GRAVE
0x94 0x00EE # LATIN SMALL LETTER I WITH CIRCUMFLEX
0x95 0x00EF # LATIN SMALL LETTER I WITH DIAERESIS
0x96 0x00F1 # LATIN SMALL LETTER N WITH TILDE
0x97 0x00F3 # LATIN SMALL LETTER O WITH ACUTE
0x98 0x00F2 # LATIN SMALL LETTER O WITH GRAVE
0x99 0x00F4 # LATIN SMALL LETTER O WITH CIRCUMFLEX
0x9A 0x00F6 # LATIN SMALL LETTER O WITH DIAERESIS
0x9B 0x00F5 # LATIN SMALL LETTER O WITH TILDE
0x9C 0x00FA # LATIN SMALL LETTER U WITH ACUTE
0x9D 0x00F9 # LATIN SMALL LETTER U WITH GRAVE
0x9E 0x00FB # LATIN SMALL LETTER U WITH CIRCUMFLEX
0x9F 0x00FC # LATIN SMALL LETTER U WITH DIAERESIS
0xA0 0x2020 # DAGGER
0xA1 0x00B0 # DEGREE SIGN
0xA2 0x00A2 # CENT SIGN
0xA3 0x00A3 # POUND SIGN
0xA4 0x00A7 # SECTION SIGN
0xA5 0x2022 # BULLET
0xA6 0x00B6 # PILCROW SIGN
0xA7 0x00DF # LATIN SMALL LETTER SHARP S
0xA8 0x00AE # REGISTERED SIGN
0xA9 0x00A9 # COPYRIGHT SIGN
0xAA 0x2122 # TRADE MARK SIGN
0xAB 0x00B4 # ACUTE ACCENT
0xAC 0x00A8 # DIAERESIS
0xAD 0x2260 # NOT EQUAL TO
0xAE 0x00C6 # LATIN CAPITAL LETTER AE
0xAF 0x00D8 # LATIN CAPITAL LETTER O WITH STROKE
0xB0 0x221E # INFINITY
0xB1 0x00B1 # PLUS-MINUS SIGN
0xB2 0x2264 # LESS-THAN OR EQUAL TO
0xB3 0x2265 # GREATER-THAN OR EQUAL TO
0xB4 0x00A5 # YEN SIGN
0xB5 0x00B5 # MICRO SIGN
0xB6 0x2202 # PARTIAL DIFFERENTIAL
0xB7 0x2211 # N-ARY SUMMATION
0xB8 0x220F # N-ARY PRODUCT
0xB9 0x03C0 # GREEK SMALL LETTER PI
0xBA 0x222B # INTEGRAL
0xBB 0x00AA # FEMININE ORDINAL INDICATOR
0xBC 0x00BA # MASCULINE ORDINAL INDICATOR
0xBD 0x03A9 # GREEK CAPITAL LETTER OMEGA
0xBE 0x00E6 # LATIN SMALL LETTER AE
0xBF 0x00F8 # LATIN SMALL LETTER O WITH STROKE
0xC0 0x00BF # INVERTED QUESTION MARK
0xC1 0x00A1 # INVERTED EXCLAMATION MARK
0xC2 0x00AC # NOT SIGN
0xC3 0x221A # SQUARE ROOT
0xC4 0x0192 # LATIN SMALL LETTER F WITH HOOK
0xC5 0x2248 # ALMOST EQUAL TO
0xC6 0x2206 # INCREMENT
0xC7 0x00AB # LEFT-POINTING DOUBLE ANGLE QUOTATION MARK
0xC8 0x00BB # RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK
0xC9 0x2026 # HORIZONTAL ELLIPSIS
0xCA 0x00A0 # NO-BREAK SPACE
0xCB 0x00C0 # LATIN CAPITAL LETTER A WITH GRAVE
0xCC 0x00C3 # LATIN CAPITAL LETTER A WITH TILDE
0xCD 0x00D5 # LATIN CAPITAL LETTER O WITH TILDE
0xCE 0x0152 # LATIN CAPITAL LIGATURE OE
0xCF 0x0153 # LATIN SMALL LIGATURE OE
0xD0 0x2013 # EN DASH
0xD1 0x2014 # EM DASH
0xD2 0x201C # LEFT DOUBLE QUOTATION MARK
0xD3 0x201D # RIGHT DOUBLE QUOTATION MARK
0xD4 0x2018 # LEFT SINGLE QUOTATION MARK
0xD5 0x2019 # RIGHT SINGLE QUOTATION MARK
0xD6 0x00F7 # DIVISION SIGN
0xD7 0x25CA # LOZENGE
0xD8 0x00FF # LATIN SMALL LETTER Y WITH DIAERESIS
0xD9 0x0178 # LATIN CAPITAL LETTER Y WITH DIAERESIS
0xDA 0x011E # LATIN CAPITAL LETTER G WITH BREVE
0xDB 0x011F # LATIN SMALL LETTER G WITH BREVE
0xDC 0x0130 # LATIN CAPITAL LETTER I WITH DOT ABOVE
0xDD 0x0131 # LATIN SMALL LETTER DOTLESS I
0xDE 0x015E # LATIN CAPITAL LETTER S WITH CEDILLA
0xDF 0x015F # LATIN SMALL LETTER S WITH CEDILLA
0xE0 0x2021 # DOUBLE DAGGER
0xE1 0x00B7 # MIDDLE DOT
0xE2 0x201A # SINGLE LOW-9 QUOTATION MARK
0xE3 0x201E # DOUBLE LOW-9 QUOTATION MARK
0xE4 0x2030 # PER MILLE SIGN
0xE5 0x00C2 # LATIN CAPITAL LETTER A WITH CIRCUMFLEX
0xE6 0x00CA # LATIN CAPITAL LETTER E WITH CIRCUMFLEX
0xE7 0x00C1 # LATIN CAPITAL LETTER A WITH ACUTE
0xE8 0x00CB # LATIN CAPITAL LETTER E WITH DIAERESIS
0xE9 0x00C8 # LATIN CAPITAL LETTER E WITH GRAVE
0xEA 0x00CD # LATIN CAPITAL LETTER I WITH ACUTE
0xEB 0x00CE # LATIN CAPITAL LETTER I WITH CIRCUMFLEX
0xEC 0x00CF # LATIN CAPITAL LETTER I WITH DIAERESIS
0xED 0x00CC # LATIN CAPITAL LETTER I WITH GRAVE
0xEE 0x00D3 # LATIN CAPITAL LETTER O WITH ACUTE
0xEF 0x00D4 # LATIN CAPITAL LETTER O WITH CIRCUMFLEX
0xF0 0xF8FF # Apple logo
0xF1 0x00D2 # LATIN CAPITAL LETTER O WITH GRAVE
0xF2 0x00DA # LATIN CAPITAL LETTER U WITH ACUTE
0xF3 0x00DB # LATIN CAPITAL LETTER U WITH CIRCUMFLEX
0xF4 0x00D9 # LATIN CAPITAL LETTER U WITH GRAVE
0xF5 0xF8A0 # undefined1
0xF6 0x02C6 # MODIFIER LETTER CIRCUMFLEX ACCENT
0xF7 0x02DC # SMALL TILDE
0xF8 0x00AF # MACRON
0xF9 0x02D8 # BREVE
0xFA 0x02D9 # DOT ABOVE
0xFB 0x02DA # RING ABOVE
0xFC 0x00B8 # CEDILLA
0xFD 0x02DD # DOUBLE ACUTE ACCENT
0xFE 0x02DB # OGONEK
0xFF 0x02C7 # CARON
+10 -1
View File
@@ -1 +1,10 @@
<html>␍<head><title>Invision Power Board - Bulletin Board System</title></head>␍<body>␍<h1>403: Invision Power Board -> Forbidden</h1>␍<hr>␍You have reached this Page in error, please use␍your back button to return to Invision Board.␍<hr>␍<a href="http://www.invisionboard.com/">Invision Power Board</a>␍</body>␍</html>␍
<html>
<head>
<meta http-equiv="content-type" content="text/html; charset=windows-1251" />
<meta name="author" content="Êîìïàíèÿ IBResource è Invision Power Services Inc.">
<title>Îøèáêà ðóññêîé âåðñèè Invision Power Board</title>
</head><body>
<h1>Îøèáêà <a href="http://www.ibresource.ru/">ðóññêîé âåðñèè Invision Power Board</a></h1>
<font size="4">Âû ïîïàëè íà íåñóùåñòâóþùóþ ñòðàíèöó!<br>Ïîæàëóéñòà íàæìèòå íà êíîïî÷êó &laquo;<b>Íàçàä</b>&raquo; â&nbsp;âàøåì áðàóçåðå äëÿ âîçâðàùåíèÿ íà ïðåäûäóùóþ ñòðàíèöó.</font>
</body>
</html>