2010/04/03

PHP: Unicode тексттэй ажиллах

Өнөө үеийн бүхий л програм хангамжуудад юникод дэмждэг болсон нь маш өргөн боломжийг хэрэглэгчдэд олгодог. Unicode хэрэглээнд төдийлөн нэвтрээгүй үед Arial Mon фонт, Monkey гарын драйвер, RealMon аппликэйшнуудыг бүгдийг нь байнга тээж авч явах төвөгтэй гэмээр үе байв.

Үйлдлийн систем, цахим хөтөчүүд (web browser)-ууд юникод дэмжихгүй байсан нь вэб урлаачдад багагүй төвөг удаж байсан нь тодорхой. Багахан хэсэг хэсэг нь Arial Мон гэх мэт фонтоор бичээд бусад хэрэглэгчдэд(гадаадад байгаа дээр дурдсан хэрэглүүрүүийг хэрэглэх боломжгүй) уншихад төвөгтэй байдал үүсч арзайж гүйцсэн "Мотомборо хэл"-ээр бичсэн мөрүүд л харагддаг байж :D

Харин тухайн үеийн эх хэлээр нийтлэхэд хэрэглэгдэж байсан цорын ганц боломж нь local тэмдэгтүүдийг html код руу нь хөрвүүлж ашиглах явдал байв. Жишээ нь Гансүх гэсэн текстийг
Гансүх
гэсэн html код руу хөрвүүлж хэрэглэдэг байв. Dreamweaver гэх мэт хүчирхэг хөгжүүлэтийн багажуудад энэ код руу хөрвүүлэх боломж нь байсан ба вэб аппликэйшндаа энэ код руу хөрвүүлэх скрипт бичиж ашигладаг байсан болов уу.
Миний өмнө бичиж байсан хичээлүүдийг дагаж хийж байхдаа магадгүй unicode тэмдэгтийг хэрхэн дүрслэх талаар сонирхож үзэж байсан болов уу гэж бодож байна.
<?php
    echo "Сайн уу?";
?>

Хэрэв дээрхи кодыг ажиллуулж үзэхэд түрүү үеийн Apache PHP server дээр алдаатай арзайсан текст харагдаж болно. Үүнийг шийдэж болох эхний шийдэл нь
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
метатагийг
<head> </head>
тагын завсар оруулж өгөх хэрэгтэй. Жишээлбэл:
<html>
<head>
    <title>PHP work with Unicode example</title>
    <meta http-equiv="Content-Type" content="text/html;charset=UTF-8" />
<body>
    <?php
        $s = "Сайн уу?";
         echo $s.'<br />';
    ?>
</body>
</head>

Өөр нэгэн арга нь

header( 'Content-Type: text/html; charset=utf-8' );

функцийг php скриктийхээ толгой хэсэг оруулж өгөх нь үр дүнтэй.

<?php
 header( 'Content-Type: text/html; charset=utf-8' );
 $s = "Сайн уу?";
 echo $s.'<br />';
?>

MySQL database-тай ажиллахдаа

@mysql_set_charset('utf8',$database_connection_name);

функцийг дуудахад хангалттай.
<?php
    $db_host='localhost';
    $db_database='blog_db';
    $db_username='root';
    $db_password='';
    
    $db_conn = mysql_connect($db_host, $db_username, $db_password);
    if (!$db_conn){
        die ("Could not connect to the database: <br />". mysql_error());
    }
    @mysql_set_charset('utf8',$db_conn);
    $db_select = mysql_select_db($db_database);
    if(!$db_select){
        die ("Could not select the database: <br />". mysql_error());
    }
?>

4 comments:

  1. Анон анд юунд инээнэм?

    ReplyDelete
  2. heregtei medeelel baina bayarlalaa.

    ReplyDelete
  3. s_lang_mon.php filed $s = "Сайн уу?"; ene utga baig.

    index.php dotor include(''s_lang_mon.php''); gej zaachaad echo $s.'
    '; hevleheer
    ur dun harhaar ???? ??? iim bolod baival yah ve? Tuslaach?

    ReplyDelete

Миний бичсэн бичлэг танд өчүүхэн ч болтугай хэрэг болсон бол сэтгэгдлээ бичиж үлдээхийг хүсье. Баярлалаа :)