<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>SpaLinux.com &#187; Thai</title>
	<atom:link href="http://spalinux.com/category/thai/feed" rel="self" type="application/rss+xml" />
	<link>http://spalinux.com</link>
	<description>Resources for Relaxing Linux System Administrators</description>
	<lastBuildDate>Sat, 21 Jan 2012 16:07:59 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3</generator>
		<item>
		<title>ตัดบางส่วนจากข้อความภาษาไทยด้วย PHP Multibyte String</title>
		<link>http://spalinux.com/2011/11/get-part-from-thai-sentence-using-php-multibyte-string</link>
		<comments>http://spalinux.com/2011/11/get-part-from-thai-sentence-using-php-multibyte-string#comments</comments>
		<pubDate>Tue, 22 Nov 2011 14:02:09 +0000</pubDate>
		<dc:creator>editor</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[Thai]]></category>
		<category><![CDATA[mbstring]]></category>
		<category><![CDATA[mutibyte string]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[substr]]></category>
		<category><![CDATA[thai]]></category>

		<guid isPermaLink="false">http://spalinux.com/?p=1503</guid>
		<description><![CDATA[โปรแกรมประเภทเว็บบอร์ดหรือเว็บ Social ที่ต้องการตัดบางส่วนจากข้อความหรือบทความที่ยาว เพื่อเป็นตัวอย่าง แสดงในหน้าแรก หรือการ Share หัวข้อบทความเป็นตัวอย่าง จากเว็บไซต์อื่นๆ หากเป็นภาษาอังกฤษ สามารถทำได้อย่างง่าย แต่ปัญหาคือเวลาตัดคำภาษาไทย มักจะไม่ได้ตามที่ต้องการ และอาจมีอักษรประหลาดแสดงขึ้นมาด้วย ในบทความนี้จะแสดงการใช้ฟังก์ชั่น PHP Multibyte String เพื่อตัดบางส่วนของข้อความได้ตามต้องการได้ หมายเหตุ เครื่องที่ใช้ทดสอบ ตั้งค่าภาษาในรูปแบบ UTF-8 $ echo $LANG en_US.UTF-8 ถ้าเป็นภาษาอังกฤษ สามารถเขียนโปรแกรม PHP โดยใช้ฟังก์ชั่น substr เช่นต้องการข้อความโดยตัดตั้งแต่อักษรตัวแรก (0) ยาวไปจำนวน 7 ตัว &#60;?php $en_msg = 'This is an example'; print substr($en_msg, 0, 7) . "\n"; ?&#62; รันโปรแกรม ก็จะได้ข้อความตามที่ต้องการ $ php [...]]]></description>
			<content:encoded><![CDATA[<p>โปรแกรมประเภทเว็บบอร์ดหรือเว็บ Social ที่ต้องการตัดบางส่วนจากข้อความหรือบทความที่ยาว เพื่อเป็นตัวอย่าง แสดงในหน้าแรก หรือการ Share หัวข้อบทความเป็นตัวอย่าง จากเว็บไซต์อื่นๆ</p>
<p>หากเป็นภาษาอังกฤษ สามารถทำได้อย่างง่าย แต่ปัญหาคือเวลาตัดคำภาษาไทย มักจะไม่ได้ตามที่ต้องการ และอาจมีอักษรประหลาดแสดงขึ้นมาด้วย</p>
<p>ในบทความนี้จะแสดงการใช้ฟังก์ชั่น PHP Multibyte String เพื่อตัดบางส่วนของข้อความได้ตามต้องการได้</p>
<p><span id="more-1503"></span>หมายเหตุ เครื่องที่ใช้ทดสอบ ตั้งค่าภาษาในรูปแบบ UTF-8</p>
<pre>$ <strong>echo $LANG</strong>
en_US.UTF-8</pre>
<p>ถ้าเป็นภาษาอังกฤษ สามารถเขียนโปรแกรม PHP โดยใช้ฟังก์ชั่น substr เช่นต้องการข้อความโดยตัดตั้งแต่อักษรตัวแรก (0) ยาวไปจำนวน 7 ตัว</p>
<pre><!--?php <br ?-->&lt;?php
$en_msg = 'This is an example';
print <span style="color: #0000ff;">substr($en_msg, 0, 7)</span> . "\n";
?&gt;</pre>
<p>รันโปรแกรม ก็จะได้ข้อความตามที่ต้องการ</p>
<pre>$ <strong>php test-substr.php</strong>
This is</pre>
<p>แต่ถ้าเป็นข้อความภาษาไทย ข้อความที่ตัดได้จะไม่ใช่ เช่น ต้องการตั้งแต่อักษรตัวแรก (0) ยาวไปจำนวน 15 ตัวอักษร&lt;</p>
<pre><!--?php <br ?-->&lt;?php
$th_msg = 'ตัวอย่างข้อความภาษาไทยที่ใช้ทดสอบ';
print substr($th_msg, 0, 15) . "\n";
?&gt;</pre>
<p>ทดลองรันจะได้ตามตัวอย่าง</p>
<pre>$ <strong>php test-substr.php</strong>
ตัวอย</pre>
<p>เนื่องมาจากฟังก์ชั่น substr ไม่สามารถจัดการตัวอักษร UTF-8 ได้อย่างถูกต้อง จำเป็นต้องเปลี่ยนไปใช้ฟังก์ชั่น Multibyte String substr (mb_substr)</p>
<p>รูปแบบการใช้ฟังก์ชั่น mb_substr จะเหมือนกับ substr เพียงแต่ต้องระบุรูปแบบของภาษาด้วย&lt;</p>
<pre><!--?php <br ?-->&lt;?php
$th_msg = 'ตัวอย่างข้อความภาษาไทยที่ใช้ทดสอบ';
print <span style="color: #0000ff;">mb_substr($th_msg, 0, 15, 'UTF-8')</span>;
?&gt;</pre>
<p>ทดลองรันโปรแกรม</p>
<pre>$ <strong>php test-substr.php</strong>
<span style="color: #ff0000;">PHP Fatal error:  Call to undefined function mb_substr() in /home/user1/mbstring/test-substr.php on line 3</span>
หากขึ้น error แบบนี้ แสดงว่าไม่ได้ติดตั้งโมดูล Multibyte String ใน PHP</pre>
<p>ต้องคอมไพล์ PHP ใหม่ หรือติดตั้งไฟล์ rpm ชื่อ php-mbstring เพิ่มเติม</p>
<p>สามารถรัน php ตามด้วยออปชั่น &#8216;-m&#8217; เพื่อดูว่ามีโมดูล mbstring แล้วหรือไม่</p>
<p>หากติดตั้งเพิ่มเติมเรียบร้อยแล้ว</p>
<pre>$ <strong>php -m | grep mbstring</strong>
mbstring</pre>
<p>ทดลองรันอีกครั้ง ก็จะขึ้นจำนวนตัวอักษรถูกต้อง</p>
<pre>$ <strong>php test-substr.php</strong>
ตัวอย่างข้อความ</pre>
<h4>ข้อมูลอ้างอิง</h4>
<ul>
<li><a href="http://www.php.net/manual/en/function.substr.php" target="_blank">PHP: substr &#8211; Manual</a></li>
<li><a href="http://www.php.net/manual/en/function.mb-substr.php" target="_blank">PHP: mb_substr &#8211; Manual</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://spalinux.com/2011/11/get-part-from-thai-sentence-using-php-multibyte-string/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>เซ็ตฟอนต์ไทยใน PuTTY</title>
		<link>http://spalinux.com/2009/05/set_font_thai_in_putty</link>
		<comments>http://spalinux.com/2009/05/set_font_thai_in_putty#comments</comments>
		<pubDate>Sun, 31 May 2009 15:23:24 +0000</pubDate>
		<dc:creator>editor</dc:creator>
				<category><![CDATA[SSH]]></category>
		<category><![CDATA[Terminal]]></category>
		<category><![CDATA[Thai]]></category>
		<category><![CDATA[putty]]></category>

		<guid isPermaLink="false">http://spalinux.com/?p=724</guid>
		<description><![CDATA[บทความนี้ขอเสนอวิธีการเซ็ตฟอนต์ไทยในโปรแกรม PuTTY เพื่อให้สามารถแสดงตัวอักษรภาษาไทยได้ถูกต้อง ทั้งการพิมพ์และการแสดงผล ซึ่งหลักการนี้สามารถนำไปใช้กับโปรแกรม Terminal Client อื่นๆ ได้ ตัวอย่างในบทความนี้ทดสอบโดยการใช้ PuTTY เปิด secure shell ไปที่ Fedora 10 เริ่มต้นทดสอบโดยการใช้คำสั่ง echo พิมพ์คำว่า &#8220;สวัสดี&#8221; ลงไปในโปรแกรม PuTTY  แต่หน้าจอแสดงผลเป็น &#8220;&#8230;..&#8221; ทั้งตอนที่เราพิมพ์ลงไป และแสดงผลลัพธ์ออกมา  เหตุผลประการแรกที่โปรแกรม PuTTY ไม่สามารถแสดงภาษาไทยได้ถูกต้องคือปัญหาเรื่อง encoding   เพราะว่าลีนุกซ์เวอร์ชั่นใหม่ๆ จะเซ็ต encoding เป็นแบบ &#8220;UTF-8&#8243; โดยดีฟอลต์ สามารถดูได้จากการรันคำสั่ง &#8220;locale&#8221;  ในที่นี้เป็น &#8221;en_US.UTF8&#8243;    แต่ในโปรแกรม PuTTY คอนฟิกดีฟอลต์จากการติดตั้ง จะเซ็ต encoding เป็น &#8220;ISO-8859-1&#8243;  ซึ่งสามารถดูได้จาก คลิ้กขวาที่รูปไอคอนด้านซ้ายบนของหน้าจอโปรแกรม PuTTY แล้วเลือกเมนู &#8220;Change Settings&#8221;  คลิ้กเลือก Category ที่ [...]]]></description>
			<content:encoded><![CDATA[<p>บทความนี้ขอเสนอวิธีการเซ็ตฟอนต์ไทยในโปรแกรม PuTTY เพื่อให้สามารถแสดงตัวอักษรภาษาไทยได้ถูกต้อง ทั้งการพิมพ์และการแสดงผล ซึ่งหลักการนี้สามารถนำไปใช้กับโปรแกรม Terminal Client อื่นๆ ได้</p>
<p><span id="more-724"></span></p>
<p>ตัวอย่างในบทความนี้ทดสอบโดยการใช้ PuTTY เปิด secure shell ไปที่ Fedora 10</p>
<p>เริ่มต้นทดสอบโดยการใช้คำสั่ง echo พิมพ์คำว่า &#8220;สวัสดี&#8221; ลงไปในโปรแกรม PuTTY  แต่หน้าจอแสดงผลเป็น &#8220;&#8230;..&#8221; ทั้งตอนที่เราพิมพ์ลงไป และแสดงผลลัพธ์ออกมา</p>
<p><img class="alignnone size-full wp-image-727" title="Cannot display Thai" src="http://spalinux.com/wp-content/uploads/2009/05/01_cannot_display_thai.png" alt="Cannot display Thai" width="650" height="445" /></p>
<p> เหตุผลประการแรกที่โปรแกรม PuTTY ไม่สามารถแสดงภาษาไทยได้ถูกต้องคือปัญหาเรื่อง encoding   เพราะว่าลีนุกซ์เวอร์ชั่นใหม่ๆ จะเซ็ต encoding เป็นแบบ &#8220;UTF-8&#8243; โดยดีฟอลต์ สามารถดูได้จากการรันคำสั่ง &#8220;locale&#8221;  ในที่นี้เป็น &#8221;en_US.UTF8&#8243;</p>
<p><img class="alignnone size-full wp-image-728" title="Locale" src="http://spalinux.com/wp-content/uploads/2009/05/02_locale.png" alt="Locale" width="650" height="445" /> </p>
<p> แต่ในโปรแกรม PuTTY คอนฟิกดีฟอลต์จากการติดตั้ง จะเซ็ต encoding เป็น &#8220;ISO-8859-1&#8243;  ซึ่งสามารถดูได้จาก คลิ้กขวาที่รูปไอคอนด้านซ้ายบนของหน้าจอโปรแกรม PuTTY แล้วเลือกเมนู &#8220;Change Settings&#8221;</p>
<p><img class="alignnone size-full wp-image-729" title="Change settings" src="http://spalinux.com/wp-content/uploads/2009/05/03_change_settings.png" alt="Change settings" width="661" height="459" /></p>
<p> คลิ้กเลือก Category ที่ &#8220;Translation&#8221;  จะขึ้นคอนฟิกเกี่ยวกับเรื่อง encoding   ดูที่ &#8220;Received data assumed to be in which character set&#8221;  โดยดีฟอลต์จะเป็น &#8220;ISO-8859-1:1998 (Latin-1, West Europe)&#8221;</p>
<p><img class="alignnone size-full wp-image-730" title="Default Translation" src="http://spalinux.com/wp-content/uploads/2009/05/04_default_translation.png" alt="Default Translation" width="456" height="443" /></p>
<p> เปลี่ยนคอนฟิกให้เป็น &#8220;UTF-8&#8243;</p>
<p><img class="alignnone size-full wp-image-731" title="Change to UTF-8" src="http://spalinux.com/wp-content/uploads/2009/05/05_change_to_utf-8.png" alt="Change to UTF-8" width="469" height="534" /></p>
<p>ทดลองพิมพ์คำสั่ง echo แล้วตามด้วยตัวอักษรภาษาไทยคำว่า &#8220;สวัสดี&#8221; อีกครั้ง  ในที่นี้การแสดงผลก็ยังไม่ถูกต้องนัก คือไม่สามารถแสดงสระบนล่างได้ถูกต้อง </p>
<p> <img class="alignnone size-full wp-image-732" title="After UTF-8" src="http://spalinux.com/wp-content/uploads/2009/05/06_after_utf-8.png" alt="After UTF-8" width="650" height="445" /></p>
<p> ปัญหาเรื่องการไม่แสดงสระไม่ครบแบบนี้ สามารถแก้ไขใน PuTTY โดยต้องแก้ไข ฟอนต์ (Font settings) ที่ใช้   คลิ้กเลือก Category ที่ &#8220;Appearance&#8221; หน้าจอจะแสดงผลเกี่ยวกับ Font โดยดีฟอลต์จะใช้ &#8220;Courier New, 10-point&#8221;</p>
<p><img class="alignnone size-full wp-image-733" title="Default Appearance" src="http://spalinux.com/wp-content/uploads/2009/05/07_default_appearance.png" alt="Default Appearance" width="456" height="443" /></p>
<p>  กดที่ปุ่ม &#8220;Change&#8221; เพื่อเลือก Font ใหม่เป็น &#8220;Fixedsys, Regular, 9-point&#8221; แล้วกดปุ่ม [OK]</p>
<p><img class="alignnone size-full wp-image-734" title="Change to Fixedsys" src="http://spalinux.com/wp-content/uploads/2009/05/08_change_to_fixedsys.png" alt="Change to Fixedsys" width="608" height="575" /></p>
<p> หลังจากเปลี่ยนฟอนต์แล้ว การแสดงผลตัวอักษรภาษาไทยจะถูกต้อง ทดลองใช้คำสั่ง echo พิมพ์คำว่า &#8220;ขอบคุณครับ&#8221;</p>
<p><img class="alignnone size-full wp-image-735" title="After change font" src="http://spalinux.com/wp-content/uploads/2009/05/09_after_change_font.png" alt="After change font" width="650" height="421" /></p>
<p>  หลังจากคอนฟิกเรียบร้อยแล้ว ถ้าต้องการเซฟค่าคอนฟิกใหม่นี้ของ PuTTY สามารถทำได้โดยกดเลือก Category ที่ Session คลิ้กเลือก &#8220;Saved Sessions&#8221; ที่ &#8220;Default Settings&#8221; แล้วกดปุ่ม [Save]</p>
<p><img class="alignnone size-full wp-image-725" title="Save Default settings" src="http://spalinux.com/wp-content/uploads/2009/05/10_save_default_settings.png" alt="Save Default settings" width="456" height="443" /></p>
<h4> </h4>
<h4>ข้อมูลอ้างอิง</h4>
<ul>
<li><a href="http://www.chiark.greenend.org.uk/~sgtatham/putty/" target="_blank"><span style="color: #667755;">PuTTY: A Free Telnet/SSH Client</span></a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://spalinux.com/2009/05/set_font_thai_in_putty/feed</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>

