Forum und email

Többájtos karakterlánc függvények

Bevezetés

Igaz több nyelv van melyben minden szükséges karaktert képviselhet egy egy-egy megfeleltetétes 8 bites érték, azonban van több nyelv, melyben olyan sok karakter szükséges az írott kommunikációhoz, hogy nem tárolhatóak le egy egyszerű bájtban. (Egy bájtot 8 bit alkot. Minden bit csak két különböző értéket tartalmazhat, egyet vagy nullát. Emiatt egy bájt csak 256 különböző értéket tud képviselni (kettő nyolcadik kitevőjű hatványa)). A többájtos karakterkódolási sémákat azért fejlesztették ki, hogy 256 karakternél is többet lehessen megkülönböztetni egy bájt alapú kódolási rendszerben.

A többájtos kódolású karaterláncok kezelésekor (trim, split, splice, stb.) egyedi függvényeket kell használni, mivel kettő vagy több egymást követő bájt képviselhet egy egyszerű karaktert is. Máskülönben, ha egy többájtos kódolásra nem felkészült függvényt használsz, valószínűleg rosszul fogja kezelni a többájtos karakterek elejét és végét, és elrontott karakterlánccal fog visszatérni, ami elveszti az eredeti jelentését.

Az mbstring kiterjesztés többájtos karakterláncok kezelésére alkalmas függvényeket nyújt, melyek segítik a többájtos kódolásokkal való minkát PHP-ban. Ráadásul az mbstring kezeli a karatkerkódolások átalakítását két lehetséges kódolási pár között. Az mbstring azért készült, hogy kezelje az Unicode-alapú kódolásokat, mint az UTF-8-at és UCS-2-tőt, és több egybájtos kódolást is (a listát lásd lentebb).

PHP karakterkódolási követelmények

A következő karakterkódolási típusok biztonságosan használhatóak a PHP-vel.

  • Egy egybájtos kódolás,

    • ami ASCII kompatibilis (ISO646 kompatibilis) megfeleltetéseket használ azoknál a karaktereknél, melyek a 00h-7fh (0-127) tartományba esnek.

  • Egy többájtos kódolás,

    • ami ASCII kompatibilis megfeleltetéseket használ azoknál a karaktereknél, melyek a 00h-7fh (0-127) tartományba esnek.
    • ami nem használ ISO2022 karakterlevédis szekvenciákat.
    • ami nem használ értéket a 00h-7fh (0-127) tartományból bármely összetett bájtban ami egy karaktert képvisel.

A következő karakterkódolások helytelenül működnek a PHP-ban.

JIS, SJIS, ISO-2022-JP, BIG-5

A fenti karakterkódolásokban írt szkriptek valószínüleg nem fognak működni, különösen abban az esetben, ahol a kódolt karakterláncok azonosítóként jelennek meg a programban. Azonban majdnem teljesen tudsz óvakodni a fenti karakterkódolások használatától ha beállítod az mbstring átlátszó kódolási szűrő függvényeit a bejövő HTTP kérésekre.

Note: Az SJIS, BIG5, CP936, CP949 és GB18030 kódolások használata belső kódolásként ellenjavallt hacsak nem jól ismered az elemzőt, a vizsgálót és a karakterkódolást.

Note: Ha egy adatbázishoz csatlakozol PHP-val, ajánlott, hogy ugyanazt a karaterkódolást használd az adatbázison, ami a belső karaterkódolás (internal encoding) a könnyű haszálat és a jobb teljesítmény érdekében.
Ha PostgreSQL-t használsz, az adatbázison használt karakterkódolás és a PHP-ban használt különbözhet, mivel támogatja az automatikus karakterkészlet-átalakítást a back-end és a front-end között.

Telepítés

Az mbstring nem alapértelmezett kiterjesztés. Ez azt jelenti, hogy alapértelmezettként nincs bekapcsolva. A modult bekapcsolhatod a configure opcióval. Lást a Telepítés és beállítás szekciót részletekért.

A következő opciók kapcsolódnak az mbstring modulhoz.

  • --enable-mbstring: Engedélyezi az mbstring függvényeket. Ez az opció szükséges az mbstring függvények használatához.

    A libmbfl szükséges az mbstring használatához. A libmbfl-t tartalmazza az mbstring. Ha a libmbfl már telepítve van a rendszereden, megadhatod a --with-libmbfl[=DIR] opciót a telepített könyvtár használtához.

    A PHP 4.3.0 óta azmbstring kiterjesztés erősített támogatást nyújt az egyszerűsített kínai, hagyományos kínai, koreai, orosz és japán nyelvhez.

    PHP 4.3.3-ban és a korábbi verziókban megadható volt az --enable-mbstring=LANG opció LANG paraméterében, hogy mely nyelveket használhaták a függvények; --enable-mbstring=cn egyszerűsített kínai támogatásért, --enable-mbstring=tw hagyományos kínai támogatásért, --enable-mbstring=kr koreai támogatásért, --enable-mbstring=ru orosz támogatásért és --enable-mbstring=ja japán támogatásért (alapértelmezett). Az összes támogatott kódolás használatához használdd az --enable-mbstring=all opciót.

    Note: A PHP 4.3.4-től az összes libmbfl által támogatott kódolás engedélyezve lesz a --enable-mbstring használatákor.

  • --enable-mbstr-enc-trans : Engedélyezi a HTTP bemeneten az automatikus karakterkódolás-átalakítást az mbstring átalakító motorjával. Ha ez a tulajdonság engedélyezve van, a HTTP bemeneti karakterkódolás automatikus át lesz alakítva a mbstring.internal_encoding kódolásra.

    Note: PHP 4.3.0-ban --enable-mbstr-enc-trans opció eltávolításra került, és helyette az mbstring.encoding_translation futásidejú opcióban adható meg a kódolás. A HTTP bemeneti karakterkódolás engedélyezve lesz, ha értéke On (az alapértelmezett érték Off).

  • --disable-mbregex: Letiltja a reguláris kifejezéseket használó függvények használatát többájtos karakterláncokkal.

Futásidejű beállítások

Az alábbi függvények viselkedése befolyásolható a php.ini segítségével.

mbstring beállítási opciók
Név Alapértelemezett érték Változtatható Changelog
mbstring.language "neutral" PHP_INI_PERDIR Elérhető PHP 4.3.0. óta
mbstring.detect_order NULL PHP_INI_ALL Elérhető PHP 4.0.6. óta
mbstring.http_input "pass" PHP_INI_ALL Elérhető PHP 4.0.6. óta
mbstring.http_output "pass" PHP_INI_ALL Elérhető PHP 4.0.6. óta
mbstring.internal_encoding NULL PHP_INI_ALL Elérhető PHP 4.0.6. óta
mbstring.script_encoding NULL PHP_INI_ALL Elérhető PHP 4.3.0. óta
mbstring.substitute_character NULL PHP_INI_ALL Elérhető PHP 4.0.6. óta
mbstring.func_overload "0" PHP_INI_PERDIR PHP_INI_SYSTEM-ben volt PHP 4.2.3-ban és előtte. Elérhető PHP 4.2.0. óta
mbstring.encoding_translation "0" PHP_INI_PERDIR Elérhető PHP 4.3.0. óta
mbstring.strict_detection "0" PHP_INI_ALL Elérhető PHP 5.1.2. óta
A PHP_INI_* konstansok definíciójaiért lásd az ini_set() függvényt.

A témába vágó konfigurációs direktívák rövid leírása

mbstring.language string

Az alapértelmezett nyelvi beállítás (NLS) amit az mbstring-nek kell használnia. Tarts fejben, hogy ez opció automatikus definiálja az mbstring.internal_encoding-ot, és az mbstring.internal_encoding-ot az mbstring.language után kell elhelyezni a php.ini-ben.

mbstring.encoding_translation boolean

Engedélyezi az átlátszó karakterkódolási szűrőt a bejövő HTTP kérésekre, ami végrehajtja a bemeni karakterkódolás felismerését és átkonvertálását a belső karakterkódolásra.

mbstring.internal_encoding string

Definiálja az alapértelmezett belső karakterkódolást.

mbstring.http_input string

Definiálja az alapértelmezett HTTP bemeneti karakterkódolást.

mbstring.http_output string

Definiálja az alapértelmezett HTTP kimeneti karakterkódolást.

mbstring.detect_order string

Definiálja az alapértelmezett karakterkód felismerési sorrended. Lásd még az mb_detect_order() függvényt.

mbstring.substitute_character string

Definiálja az a karaktert, amit a helytelentelenül kódolt karakterek helyére kell behelyettesíeni.

mbstring.func_overload string

Felülírja az egybájtos karakterkódolású függvények egy halmazát az mbstring megfelelőjükkel. Lásd a Függvény feülírás szekciót további információkért.

mbstring.strict_detection boolean

Engedélyezi a szigorú kódolás felismerést.

A » HTML 4.01 specifikáció szerint a webböngészők átkonvertálhatják a küldés alatt álló űrlap adatait az oldal karakterkódolásától eltérő kódolásba. Lásd az mb_http_input() függvényt a böngésző által használt kódolás megállapítására.

Habár a népszerű böngészők alkalmasak kitalálni a kódolását az adott HTML dokumentumnak, mégis jobb, ha a Content-Type HTTP fejléc charset paraméterében megadjuk a kódolást a header() függvény segítségével, vagy beállítjuk a default_charset ini beállításban.

Example#1 php.ini beállítási példák

; Alapértelmezett nyelv beállítása
mbstring.language        = Neutral; Alapértelmezett nyelv beállítása Neutral(UTF-8)-ra (alapértelmezett)
mbstring.language        = English; Alapértelmezett nyelv beállítása angolra
mbstring.language        = Japanese; Alapértelmezett nyelv beállítása japánra

;; Alapértelmezett belső kódolás beállítása
;; Megjegyzés: Csak olyan kódolást adj meg, ami biztosan működik a PHP-ban
mbstring.internal_encoding    = UTF-8  ; Belső karakterkódolás beállítása UTF-8-ra

;; A HTTP bemeneti kódolás átalakítása engedélyezett.
mbstring.encoding_translation = On

;; Alapértelmezett HTTP bemeneti karakterlódolás beállítása
;; Megjegyzés: A programból nem változtatható meg a http_input beállítás.
mbstring.http_input           = pass    ; Nincs átalakítás. 
mbstring.http_input           = auto    ; HTTP bemenet kódolásának beállítása automatikusra
                                ; az "auto" "ASCII,JIS,UTF-8,EUC-JP,SJIS"-sel lesz helyettesítve
mbstring.http_input           = SJIS    ; HTTP2 bemeneti kódolás átállítása SJIS-re
mbstring.http_input           = UTF-8,SJIS,EUC-JP ; Sorrend megadása

;; Alapértelmezett HTTP kimeneti karakterkódolás beállítása
mbstring.http_output          = pass    ; Nincs átalakítás
mbstring.http_output          = UTF-8   ; Alapértelmezett HTTP kimeneti kódolás átállítása UTF-8-ra

;; Alapértelmezett karakterkódolás megállapítási sorrend megadása
mbstring.detect_order         = auto    ; Megállapítási sorrend beállítása auto-ra
mbstring.detect_order         = ASCII,JIS,UTF-8,SJIS,EUC-JP ; Sorrend megadása

;; Alapértelmezett behelyettesítő karakter megadása
mbstring.substitute_character = 12307   ; Unicode érték megadása
mbstring.substitute_character = none    ; Ne írjon ki karaktert
mbstring.substitute_character = long    ; Long példa: U+3000,JIS+7E7E

Example#2 php.ini beállítás EUC-JP felhasználóknak

;; Kimeneti pufferelés tiltása
output_buffering      = Off

;; HTTP fejléc karakterkészlet megadása
default_charset       = EUC-JP    

;; Alapértelmezett nyelv beállítása japánra
mbstring.language = Japanese

;; A HTTP bemeneti kódolás átalakítása engedélyezett.
mbstring.encoding_translation = On

;; HTTP input encoding conversion to auto
mbstring.http_input   = auto 

;; Convert HTTP output to EUC-JP
mbstring.http_output  = EUC-JP    

;; Set internal encoding to EUC-JP
mbstring.internal_encoding = EUC-JP    

;; Do not print invalid characters
mbstring.substitute_character = none   

Example#3 php.ini setting for SJIS users

;; Enable Output Buffering
output_buffering     = On

;; Set mb_output_handler to enable output conversion
output_handler       = mb_output_handler

;; Set HTTP header charset
default_charset      = Shift_JIS

;; Set default language to Japanese
mbstring.language = Japanese

;; A HTTP bemenet kódálásának átalakítása automatikus
mbstring.http_input  = auto 

;; Átalakítás SJIS-re
mbstring.http_output = SJIS    

;; Belső kódolás beállítása EUC-JP-re
mbstring.internal_encoding = EUC-JP    

;; Ne írjon ki helytelen karaktereket
mbstring.substitute_character = none   

Erőforrás típusok

Ez a kiterjesztés semmilyen erőforrás típust nem definiál.

Előre definiált állandók

Az itt listázott állandókat ez a kiterjesztés definiálja, és csak akkor elérhetőek, ha az adott kiterjesztés be van fordítva a PHP-be, vagy dinamikusan betöltött.

MB_OVERLOAD_MAIL (integer)
MB_OVERLOAD_STRING (integer)
MB_OVERLOAD_REGEX (integer)
MB_CASE_UPPER (integer)
MB_CASE_LOWER (integer)
MB_CASE_TITLE (integer)

HTTP bemenet és kimenet

A HTTP bemenet/kimenet karakterkódolás-átalakítás bináris adatot is átalakíthat. A felhasználók dolga, hogy gondoskodjanak a karakterkódolások közötti átalakításról, ha bináris adatot használnak HTTP bemenet/kimenetnél.

Note: A PHP 4.3.2-ben vagy korábbi verziókban korlátozva volt a funkcionalitásban az, hogy az mbstring nem hajtott végre automatikus karakterkészlet-átalakítást a POST adatban ha az enctype attribútuma a form elembet multipart/form-data-ra volt állítva. Tehát ebben az esetben neked kell az érkező adatokat szükség esetén konvertálni.
A PHP 4.3.3-tól ha az enctype értéke a HTML űrlapban multipart/form-data és az mbstring.encoding_translation be van kapcsolva a php.ini-ben (értéke On), akkor a POST adatként küldött változók és a feltöltött fájlok neve át lesz alakítva a belső karakterkódolásra. Azonban a konverzió nem fog hatni a lekérdezési kulcsokra.

  • HTTP bemenet

    Semmilyen módon nem lehet kezelni a HTTP bemenet karaterátalakítását PHP programból. A HTTP bemenet karakterátalakítását a php.ini-ben lehet kikapcsolni.

    Example#4 HTTP bemenet átalakítás kikapcsolása a php.ini-ben

    ;; HTTP bemeneti átalakítás kikapcsolása
    mbstring.http_input = pass
    ;; HTTP bemeneti átalakítás kikapcsolása (PHP 4.3.0 vagy újabb)
    mbstring.encoding_translation = Off

    Ha a PHP Apache modulként van beállítva, lehetséges, hogy felülírd ezeket a beállításokat minden Virtual Host direktívában felülírd a httpd.conf-ban vagy könyvtáranként .htaccess fájlokkal. További részletekért lásd a Futásidejű beállítások szekciót és az Apache kézikönyvet.

  • HTTP kimenet

    Több módja van a kimeneti karakterkódolás-átalakítás engedélyezésének. Van olyan, ami a php.ini-t használja, míg egy másik az ob_start() függvényt az mb_output_handler()-rel az ob_start callback függvényeként.

    Note: A PHP3-i18n felhasználóknak figyelembe kell venniük hogy az mbstring kimeneti konverziói különböznek a PHP-i18n-étől. A karakterkódolás a kimeneti puffer segítségével történik meg.

Example#5 php.ini beállítási példa

;; Kimeneti karakterkódolás-átalakítás engedélyezése az összes PHP oldalra

;; Kimeneti pufferelés engedélyezése
output_buffering    = On

;; Az mb_output_handler függvény beállítása a kimeneti átalakítás engedélyezéséhez
output_handler      = mb_output_handler

Example#6 Szkript példa

<?php

// Kimeneti karakterkódolás-átalakítás engedélyezése csak erre a lapra

// HTTP kimenet karakterkódolásának átállítása SJIS-re
mb_http_output('SJIS');

// Kimeneti pufferelés megkezdése és az "mb_output_handler" 
// megadás callback függvényként
ob_start('mb_output_handler');

?>

Támogatott karakterkódolások

Jelenleg a következő karakterkódolásokat támogatja az mbstring modul. E kódolások bármelyike megadható kódolás (encoding) paraméterként az mbstring függvényekben.

A következő karakterkódolásokat támogatottak ebben a PHP kiterjesztésben:

  • UCS-4
  • UCS-4BE
  • UCS-4LE
  • 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
  • byte2be
  • byte2le
  • byte4be
  • byte4le
  • BASE64
  • HTML-ENTITIES
  • 7bit
  • 8bit
  • EUC-CN
  • CP936
  • HZ
  • EUC-TW
  • CP950
  • BIG-5
  • EUC-KR
  • UHC (CP949)
  • ISO-2022-KR
  • Windows-1251 (CP1251)
  • Windows-1252 (CP1252)
  • CP866 (IBM866)
  • KOI8-R

Bármely php.ini bejegyzés, megy elfogad karakterkódolás nevet felveheti az "auto" és "pass" értékeket. Azon mbstring függvényeknél, melyek paraméterként kódolást is kaphatnak, a kódolás értéke lehet is "auto".

Ha "pass" van megadva, nem lesz karakterkódolás-átalakítás.

Ha "auto" van megadva, akkor azoknak a kódolásoknak a listáját veszi fel, ami az NLS-ben van megadva. Tehát ha az NLS értéke Japanese, akkor az érték "ASCII,JIS,UTF-8,EUC-JP,SJIS" lesz.

Lásd még: mb_detect_order()

Függvény felülírási tulajdonság

Gyakran nehéznek találhatod egy olyan PHP alkalmazás írását, ami működik többájtos környezetben. Ez azért van, mert a legtöbb PHP alkalmazás az alapvető karakterkezelő függvényeket, mint a substr() használja, amelyekről tudjuk, hogy rosszul kezelik a többájtos kódolású karakterláncokat.

Az mbstring támogatja az alapvető függvények felülírását, ami lehetővé teszi, hogy multibyte képessé tedd a programot a forráskód módosítása nélkül azzal, hogy az alapvető függvényeket felülírja a PHP a többájtos megfelelőjükkel. Például az mb_substr() hívódik meg a substr(), ha a felülírás engedélyezve van. Ez a tulajdonság könnyen áthelyezhetővé teszi többájtos kódolású környezetbe, azokat az alkalmazásokat, melyek csak egybájtos kódolásokat támogatnak.

A függvény felülírás használatához a mbstring.func_overload bejegyzést kell módosítani a php.ini-ben pozitív értékké, amiben a bitek képviselik a felülírandó függvényeket. Ennek az 1 értéket kell felvenni, ha a mail() függvényt szeretnéd felülírni. 2-tőt a karakterlánc függvényekhez, és 4-et a reguláris kifejezéseket használó függvényekhez. Például ha a bejegyzés értéke 7, a levelező, karakterlánc és reguláris kifejezéseket használó függvények is felül lesznek írva. A felülírható függvények listája látható lejjebb.

Felülíró függvények
mbstring.func_overload értéke eredeti függvény felülíró függvény
1 mail() mb_send_mail()
2 strlen() mb_strlen()
2 strpos() mb_strpos()
2 strrpos() mb_strrpos()
2 substr() mb_substr()
2 strtolower() mb_strtolower()
2 strtoupper() mb_strtoupper()
2 substr_count() mb_substr_count()
4 ereg() mb_ereg()
4 eregi() mb_eregi()
4 ereg_replace() mb_ereg_replace()
4 eregi_replace() mb_eregi_replace()
4 split() mb_split()

Note: Nem ajánlott a függvényfelülírás használata könyvtárankénti tartalomban, mivel még nincs megerősítve, hogy elég stabil-e éles környezetben és nem vezethet-e váratlan viselkedéshez.

A japán többájtos kódolások alapjai

A japán karaktereket csak többájtos kódolásokkal lehet megjeleníteni, és a többfajta kódolás használata függ a platformtól és a szöveg céljától. Hogy a probléma még bonyolultabb legyen, ezek a kódolások alig térnek el egymástól. Azért, hogy egy webalkalmazás használható legyen japán környezetben is, a fejlesztőnek ezeket a bonyolultságokat fejben kell tartani, hogy biztosísta, hogy a megfelelő karakterkódolást használják.

  • Egy karakter tárolása akár hat bájtot is igénybe vehet
  • A legtöbb japán többájtos karakter kétszer olyan szélesen jelenik meg, mint az egybájtos karakterek. Ezek a karakterek japánul az ún. "zen-kaku" karakterek, ami azt jelenti, hogy "teljes szélesség". Azonban másik, véknyabb karakterek is léteznek, melyek neve "han-kaku", jelentése "feleakkora szélesség". A grafikai tulajdonságai ezeknek a karaktereknek még függenek a megjelenítéshez használt betűtípustól is.
  • Néhány karakterkódolás levédési (perjel) szekvenciákat használ, ahogy azt az ISO-2022 megszabja, hogy átváltsa a kódtáblát a specifikus kódtartományba (00h-7fh).
  • Az ISO-2022-JP kódolást kellene haszálni SMTP/NNTP szervereken, és a fejléceket (header) és entitásokat újra kellene kódolni az RFC követelmények szerint. Habár ezek nem követelmények, még mindig jó ötlet, mivel több népszerű böngésző nem tudja felismerni bármely más kódolást.
  • Moboltelefon szolgáltatásoknak készített honlapokon, mint az » i-mode, a » Vodafone live!, vagy az » EZweb feltehetően Shift_JIS használnak.

Referenciák

Többájtos karakterkódolási sémák és a kapcsolódó hibák egészen komplikáltak, és a dokumentáció hatáskörén kívül esnek. Kérlek lást a következő URL-eket és egyéb forrásokat további információért ebben a témában.

Summaries of supported encodings

Summaries of supported encodings
Name in the IANA character set registry:ISO-10646-UCS-4
Underlying character set:ISO 10646
Description: The Universal Character Set with 31-bit code space, standardized as UCS-4 by ISO/IEC 10646. It is kept synchronized with the latest version of the Unicode code map.
Additional note: If this name is used in the encoding conversion facility, the converter attempts to identify by the preceding BOM (byte order mark)in which endian the subsequent bytes are represented.
Name in the IANA character set registry:ISO-10646-UCS-4
Underlying character set:UCS-4
Description: See above.
Additional note: In contrast to UCS-4, strings are always assumed to be in big endian form.
Name in the IANA character set registry:ISO-10646-UCS-4
Underlying character set:UCS-4
Description: See above.
Additional note: In contrast to UCS-4, strings are always assumed to be in little endian form.
Name in the IANA character set registry:ISO-10646-UCS-2
Underlying character set:UCS-2
Description: The Universal Character Set with 16-bit code space, standardized as UCS-2 by ISO/IEC 10646. It is kept synchronized with the latest version of the unicode code map.
Additional note: If this name is used in the encoding conversion facility, the converter attempts to identify by the preceding BOM (byte order mark)in which endian the subsequent bytes are represented.
Name in the IANA character set registry:ISO-10646-UCS-2
Underlying character set:UCS-2
Description: See above.
Additional note: In contrast to UCS-2, strings are always assumed to be in big endian form.
Name in the IANA character set registry:ISO-10646-UCS-2
Underlying character set:UCS-2
Description: See above.
Additional note: In contrast to UCS-2, strings are always assumed to be in little endian form.
Name in the IANA character set registry:UTF-32
Underlying character set:Unicode
Description: Unicode Transformation Format of 32-bit unit width, whose encoding space refers to the Unicode's codeset standard. This encoding scheme wasn't identical to UCS-4 because the code space of Unicode were limited to a 21-bit value.
Additional note: If this name is used in the encoding conversion facility, the converter attempts to identify by the preceding BOM (byte order mark)in which endian the subsequent bytes are represented.
Name in the IANA character set registry:UTF-32BE
Underlying character set:Unicode
Description:See above
Additional note: In contrast to UTF-32, strings are always assumed to be in big endian form.
Name in the IANA character set registry:UTF-32LE
Underlying character set:Unicode
Description:See above
Additional note: In contrast to UTF-32, strings are always assumed to be in little endian form.
Name in the IANA character set registry:UTF-16
Underlying character set:Unicode
Description: Unicode Transformation Format of 16-bit unit width. It's worth a note that UTF-16 is no longer the same specification as UCS-2 because the surrogate mechanism has been introduced since Unicode 2.0 and UTF-16 now refers to a 21-bit code space.
Additional note: If this name is used in the encoding conversion facility, the converter attempts to identify by the preceding BOM (byte order mark)in which endian the subsequent bytes are represented.
Name in the IANA character set registry:UTF-16BE
Underlying character set:Unicode
Description: See above.
Additional note: In contrast to UTF-16, strings are always assumed to be in big endian form.
Name in the IANA character set registry:UTF-16LE
Underlying character set:Unicode
Description: See above.
Additional note: In contrast to UTF-16, strings are always assumed to be in little endian form.
Name in the IANA character set registry:UTF-8
Underlying character set:Unicode / UCS
Description: Unicode Transformation Format of 8-bit unit width.
Additional note:none
Name in the IANA character set registry:UTF-7
Underlying character set:Unicode
Description: A mail-safe transformation format of Unicode, specified in » RFC2152.
Additional note:none
Name in the IANA character set registry:(none)
Underlying character set:Unicode
Description: A variant of UTF-7 which is specialized for use in the » IMAP protocol.
Additional note:none
Name in the IANA character set registry: US-ASCII (preferred MIME name) / iso-ir-6 / ANSI_X3.4-1986 / ISO_646.irv:1991 / ASCII / ISO646-US / us / IBM367 / CP367 / csASCII
Underlying character set:ASCII / ISO 646
Description: American Standard Code for Information Interchange is a commonly-used 7-bit encoding. Also standardized as an international standard, ISO 646.
Additional note:(none)
Name in the IANA character set registry: EUC-JP (preferred MIME name) / Extended_UNIX_Code_Packed_Format_for_Japanese / csEUCPkdFmtJapanese
Underlying character set: Compound of US-ASCII / JIS X0201:1997 (hankaku kana part) / JIS X0208:1990 / JIS X0212:1990
Description: As you see the name is derived from an abbreviation of Extended UNIX Code Packed Format for Japanese, this encoding is mostly used on UNIX or alike platforms. The original encoding scheme, Extended UNIX Code, is designed on the basis of ISO 2022.
Additional note: The character set referred to by EUC-JP is different to IBM932 / CP932, which are used by OS/2® and Microsoft® Windows®. For information interchange with those platforms, use EUCJP-WIN instead.
Name in the IANA character set registry:Shift_JIS (preferred MIME name) / MS_Kanji / csShift_JIS
Underlying character set:Compound of JIS X0201:1997 / JIS X0208:1997
Description: Shift_JIS was developed in early 80's, at the time personal Japanese word processors were brought into the market, in order to maintain compatiblities with the legacy encoding scheme JIS X 0201:1976. According to the IANA definition the codeset of Shift_JIS is slightly different to IBM932 / CP932. However, the names "SJIS" / "Shift_JIS" are often wrongly used to refer to these codesets.
Additional note:For the CP932 codemap, use SJIS-WIN instead.
Name in the IANA character set registry:(none)
Underlying character set: Compound of JIS X0201:1997 / JIS X0208:1997 / IBM extensions / NEC extensions
Description: While this "encoding" uses the same encoding scheme as EUC-JP, the underlying character set is different. That is, some code points map to different characters than EUC-JP.
Additional note:none
Name in the IANA character set registry:Windows-31J / csWindows31J
Underlying character set: Compound of JIS X0201:1997 / JIS X0208:1997 / IBM extensions / NEC extensions
Description: While this "encoding" uses the same encoding scheme as Shift_JIS, the underlying character set is different. That means some code points map to different characters than Shift_JIS.
Additional note:(none)
Name in the IANA character set registry:ISO-2022-JP (preferred MIME name) / csISO2022JP
Underlying character set: US-ASCII / JIS X0201:1976 / JIS X0208:1978 / JIS X0208:1983
Description:» RFC1468
Additional note:(none)
Name in the IANA character set registry:JIS
Underlying character set:
Description:
Additional note:
Name in the IANA character set registry:ISO-8859-1
Underlying character set:
Description:
Additional note:
Name in the IANA character set registry:ISO-8859-2
Underlying character set:
Description:
Additional note:
Name in the IANA character set registry:ISO-8859-3
Underlying character set:
Description:
Additional note:
Name in the IANA character set registry:ISO-8859-4
Underlying character set:
Description:
Additional note:
Name in the IANA character set registry:ISO-8859-5
Underlying character set:
Description:
Additional note:
Name in the IANA character set registry:ISO-8859-6
Underlying character set:
Description:
Additional note:
Name in the IANA character set registry:ISO-8859-7
Underlying character set:
Description:
Additional note:
Name in the IANA character set registry:ISO-8859-8
Underlying character set:
Description:
Additional note:
Name in the IANA character set registry:ISO-8859-9
Underlying character set:
Description:
Additional note:
Name in the IANA character set registry:ISO-8859-10
Underlying character set:
Description:
Additional note:
Name in the IANA character set registry:ISO-8859-13
Underlying character set:
Description:
Additional note:
Name in the IANA character set registry:ISO-8859-14
Underlying character set:
Description:
Additional note:
Name in the IANA character set registry:ISO-8859-15
Underlying character set:
Description:
Additional note:
Name in the IANA character set registry:byte2be
Underlying character set:
Description:
Additional note:
Name in the IANA character set registry:byte2le
Underlying character set:
Description:
Additional note:
Name in the IANA character set registry:byte4be
Underlying character set:
Description:
Additional note:
Name in the IANA character set registry:byte4le
Underlying character set:
Description:
Additional note:
Name in the IANA character set registry:BASE64
Underlying character set:
Description:
Additional note:
Name in the IANA character set registry:HTML-ENTITIES
Underlying character set:
Description:
Additional note:
Name in the IANA character set registry:7bit
Underlying character set:
Description:
Additional note:
Name in the IANA character set registry:8bit
Underlying character set:
Description:
Additional note:
Name in the IANA character set registry:EUC-CN
Underlying character set:
Description:
Additional note:
Name in the IANA character set registry:CP936
Underlying character set:
Description:
Additional note:
Name in the IANA character set registry:HZ
Underlying character set:
Description:
Additional note:
Name in the IANA character set registry:EUC-TW
Underlying character set:
Description:
Additional note:
Name in the IANA character set registry:CP950
Underlying character set:
Description:
Additional note:
Name in the IANA character set registry:BIG-5
Underlying character set:
Description:
Additional note:
Name in the IANA character set registry:EUC-KR
Underlying character set:
Description:
Additional note:
Name in the IANA character set registry:UHC (CP949)
Underlying character set:
Description:
Additional note:
Name in the IANA character set registry:ISO-2022-KR
Underlying character set:
Description:
Additional note:
Name in the IANA character set registry:Windows-1251 (CP1251)
Underlying character set:
Description:
Additional note:
Name in the IANA character set registry:Windows-1252 (CP1252)
Underlying character set:
Description:
Additional note:
Name in the IANA character set registry:CP866 (IBM866)
Underlying character set:
Description:
Additional note:
Name in the IANA character set registry:KOI8-R
Underlying character set:
Description:
Additional note:

Table of Contents