<?
function utf8_to_unicode( $str ) {
$unicode = array();
$values = array();
$lookingFor = 1;
for ($i = 0; $i < strlen( $str ); $i++ ) {
$thisValue = ord( $str[ $i ] );
if ( $thisValue < 128 ) $unicode[] = $thisValue;
else {
if ( count( $values ) == 0 ) $lookingFor = ( $thisValue < 224 ) ? 2 : 3;
$values[] = $thisValue;
if ( count( $values ) == $lookingFor ) {
$number = ( $lookingFor == 3 ) ?
( ( $values[0] % 16 ) * 4096 ) + ( ( $values[1] % 64 ) * 64 ) + ( $values[2] % 64 ):
( ( $values[0] % 32 ) * 64 ) + ( $values[1] % 64 );
$unicode[] = $number;
$values = array();
$lookingFor = 1;
}// if
} // if
} // for
return $unicode;
} // utf8_to_unicodea
function unicode_to_utf8( $str ) {
$utf8 = '';
foreach( $str as $unicode ) {
if ( $unicode < 128 ) {
$utf8.= chr( $unicode );
} elseif ( $unicode < 2048 ) {
$utf8.= chr( 192 + ( ( $unicode - ( $unicode % 64 ) ) / 64 ) );
$utf8.= chr( 128 + ( $unicode % 64 ) );
} else {
$utf8.= chr( 224 + ( ( $unicode - ( $unicode % 4096 ) ) / 4096 ) );
$utf8.= chr( 128 + ( ( ( $unicode % 4096 ) - ( $unicode % 64 ) ) / 64 ) );
$utf8.= chr( 128 + ( $unicode % 64 ) );
} // if
} // foreach
return $utf8;
}
/* º¯È¯ÇÏ°íÀÚ ÇÏ´Â ¾ð¾î ¿¹Á¦ - UTF-8·Î ¹Ù²Ù±â À§Çؼ iconv ÇÔ¼ö¸¦ »ç¿ëÇß´Ù. */
function han2eng($str1){
/* ÃÊÁß¼º¿¡ ´ëÀÀÇÏ´Â ¿µ¹® ¾ËÆĺª ¹è¿È */
$LCtable = array("¤¡","¤¢","¤¤","¤§","¤¨","¤©","¤±","¤²","¤³","¤µ","¤¶","¤·","¤¸","¤¹","¤º","¤»","¤¼","¤½","¤¾");
$MVtable = array("¤¿","¤À","¤Á","¤Â","¤Ã","¤Ä","¤Å","¤Æ","¤Ç","¤È","¤É","¤Ê","¤Ë","¤Ì","¤Í","¤Î","¤Ï","¤Ð","¤Ñ","¤Ò","¤Ó");
$TCtable = array("","¤¡","¤¢","¤£","¤¤","¤¥","¤¦","¤§","¤©","¤ª","¤«","¤¬","¤","¤®","¤¯","¤°","¤±","¤²","¤´","¤µ","¤¶","¤·","¤¸","¤º","¤»","¤¼","¤½","¤¾");
$LCetable = array("k","kk","n","d","tt","l","m","b","pp","s","ss","","j","jj","ch","k","t","p","h");
$MVetable = array("a","ae","ya","yae","eo","e","yeo","ye","o","wa","wae","oe","yo","u","wo","we","wi","yu","eu","ui","i");
$TCetable = array("","g","kk","k","n","n","n","t","l","l","l","l","l","l","l","l","m","p","p","s","ss","ng","j","ch","k","t","p","h");
$returnValue = '';
//$str1 = iconv("EUC-KR","UTF-8", $str1);
/* UTF-8·Î º¯È¯µÈ ¹®ÀåÀ» À¯´ÏÄÚµå·Î º¯È¯ÇÑ´Ù. */
$result = utf8_to_unicode($str1);
/* À¯´ÏÄÚµå·Î º¯È¯µÈ ±ÛÀÌ ÇѱÛÄÚµå ¾È¿¡ ÀÖÀ¸¸é ÃÊÁß¼ºÀ¸·Î ºÐ¸®ÇÑ´Ù
¿øº»¿¡¼ ¾à°£ ¼öÁ¤ÇÔ. ÇÑ±Û ¿Ü ±ÛÀÚ¿¡¼ Áߺ¹ÆÐÅÏÀÌ ³ª¿À´Â ºÎºÐ ¼öÁ¤ÇÔ.
´Ü ÇÑ±Û¿Ü [0-9a-Z]´Â È®ÀÎÇßÁö¸¸ ±× ¿Ü ¹®ÀÚ¿¡¼´Â È®ÀÎ ÇØ º¸Áö ¾ÊÀ½.
*/
foreach( $result AS $key => $val){
if($val >= 44032 && $val <= 55203) {
$chr = "";
$code = "";
$temp1 = "";
$code = $val;
$temp1 = $code - 44032;
$T = (int) $temp1 % 28;
$temp1 /= 28;
$V = (int) $temp1 % 21;
$temp1 /= 21;
$L = (int) $temp1;
$chr .= $LCetable[$L].$MVetable[$V].$TCetable[$T];
$returnValue .= ucfirst($chr);
}else {
//$returnValue .= unicode_to_utf8($val);
$returnValue .= chr($val);
}
}
return $returnValue;
}
/**
* echo han2eng("ÇÑ±Û ÀÚ¼Ò º¯È¯ ÇÕ´Ï´Ù. Korea");
*/
?> |
|