<?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>Cholwich's blog &#187; Uncategorized</title>
	<atom:link href="http://cholwich.org/wordpress/category/uncategorized/feed/" rel="self" type="application/rss+xml" />
	<link>http://cholwich.org/wordpress</link>
	<description>Just another blog of mine</description>
	<lastBuildDate>Thu, 02 Jun 2011 02:00:25 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
		<item>
		<title>Ruby กับ UTF8</title>
		<link>http://cholwich.org/wordpress/2008/04/10/ruby-%e0%b8%81%e0%b8%b1%e0%b8%9a-utf8/</link>
		<comments>http://cholwich.org/wordpress/2008/04/10/ruby-%e0%b8%81%e0%b8%b1%e0%b8%9a-utf8/#comments</comments>
		<pubDate>Thu, 10 Apr 2008 02:23:43 +0000</pubDate>
		<dc:creator>cholwich</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[programming]]></category>
		<category><![CDATA[ruby]]></category>

		<guid isPermaLink="false">http://cholwich.org/wordpress/?p=50</guid>
		<description><![CDATA[คิดว่าคงจะรู้กันโดยทั่วไปแล้ว ว่าเราสามารถใช้ Ruby กับ String ที่เข้ารหัสแบบ UTF-8 ได้ ที่ว่าใช้ได้นี่หมายความว่า ได้ข้อมูล (ข้อความ) มา ก็สามารถเก็บลงไปในตัวแปรได้เลย ไม่เกิดปัญหาอะไร แต่โดยการทำงานจริงๆ แล้ว Ruby ไม่ได้สนับสนุน UTF-8 หรือการเข้ารหัสข้อความแบบใดๆ ทั้งสิ้น เพียงแค่พิจารณาว่า String ก็คือลำดับของตัวอักษร ที่ตัวอักษรหนึ่งตัวมีขนาดเท่ากัน (จะเป็น 1 ไบต์ หรือ 2 ไบต์ ก็แล้วแต่การใช้งาน) ดังนั้นจึงใช้กับ UTF-8 ที่เก็บตัวอักษรแต่ละตัวด้วยที่ไม่เท่ากันไม่ได้ พอดีช่วงนี้กำลังเขียน Ruby เพื่อจัดการข้อความภาษาไทย และพยายามออกแบบให้จัดการกับภาษาอื่นๆ ได้ด้วย ก็เลยต้องเก็บทุกอย่างไว้เป็น UTF-8 จะได้ไม่เสียเวลาแปลงข้อมูล เสร็จแล้วทีนี้จะต้องเข้าถึงตัวอักษรแต่ละตัวเพื่อคำนวณค่าอะไรบางอย่าง จะใช้ [] ก็ไม่ได้แล้ว เพราะจะได้ตัวอักษรไม่ตรงตัว สุดท้ายเลยต้องไปหา gem ที่ช่วยจัดการ UTF-8 มาลองใช้ด้วย เท่าที่ลองหาดูก็เจอ icu4r [...]]]></description>
			<content:encoded><![CDATA[<p>คิดว่าคงจะรู้กันโดยทั่วไปแล้ว ว่าเราสามารถใช้ Ruby กับ String ที่เข้ารหัสแบบ UTF-8 ได้ ที่ว่าใช้ได้นี่หมายความว่า ได้ข้อมูล (ข้อความ) มา ก็สามารถเก็บลงไปในตัวแปรได้เลย ไม่เกิดปัญหาอะไร แต่โดยการทำงานจริงๆ แล้ว Ruby ไม่ได้สนับสนุน UTF-8 หรือการเข้ารหัสข้อความแบบใดๆ ทั้งสิ้น เพียงแค่พิจารณาว่า String ก็คือลำดับของตัวอักษร ที่ตัวอักษรหนึ่งตัวมีขนาดเท่ากัน (จะเป็น 1 ไบต์ หรือ 2 ไบต์ ก็แล้วแต่การใช้งาน) ดังนั้นจึงใช้กับ UTF-8 ที่เก็บตัวอักษรแต่ละตัวด้วยที่ไม่เท่ากันไม่ได้</p>
<p>พอดีช่วงนี้กำลังเขียน Ruby เพื่อจัดการข้อความภาษาไทย และพยายามออกแบบให้จัดการกับภาษาอื่นๆ ได้ด้วย ก็เลยต้องเก็บทุกอย่างไว้เป็น UTF-8 จะได้ไม่เสียเวลาแปลงข้อมูล เสร็จแล้วทีนี้จะต้องเข้าถึงตัวอักษรแต่ละตัวเพื่อคำนวณค่าอะไรบางอย่าง จะใช้ <code>[]</code> ก็ไม่ได้แล้ว เพราะจะได้ตัวอักษรไม่ตรงตัว สุดท้ายเลยต้องไปหา gem ที่ช่วยจัดการ UTF-8 มาลองใช้ด้วย เท่าที่ลองหาดูก็เจอ</p>
<ul>
<li><a href="http://icu4r.rubyforge.org/">icu4r</a> เป็น binding ที่ทำให้ Ruby ใช้ความสามารถของ ICU ได้ โดยสร้าง class ใหม่ชื่อ UString มาใช้โดยเฉพาะ ดูท่าทางจะใช้ได้ดี แต่ก็มีข้อเสียอยู่ที่ติดตั้งยาก ต้องลง ICU ไว้ในระบบก่อน สุดท้ายเลยเลิกไป</li>
<li><a href="http://www.flexiguided.de/publications.utf8proc.reference.en.html">utf8proc</a> เป็น module อีกอันหนึ่ง ที่เพิ่มส่วนขยายให้คลาส String ซึ่งก็มีข้อจำกัดในฟังก์ชันการทำงาน แถมยังไม่ค่อยมีเอกสารเท่าไหร่</li>
<li><a href="http://rubyforge.org/projects/char-encodings/">character-encodings</a> อันนี้ไปเจอทีหลังสุด ฟีเจอร์ต่างๆ ก็ดูดี ใช้งานไม่ยุ่งยาก (แต่อาจจะหาเอกสารยากเหมือนกัน) แต่คนเขียนพยายามบอกว่ามันคือส่วนหนึ่งที่อาจจะรวมเข้าไปใน Ruby 2.0 เลยเลือกใช้อันนี้</li>
</ul>
<p>การใช้งานก็ไม่ยาก ลองดูตามตัวอย่างนี้ได้เลย</p>

<div class="wp_syntax"><div class="code"><pre class="ruby" style="font-family:monospace;"><span style="color:#CC0066; font-weight:bold;">require</span> <span style="color:#996600;">'rubygems'</span>
<span style="color:#CC0066; font-weight:bold;">require</span> <span style="color:#996600;">'encoding/character/utf-8'</span>
s = <span style="color:#006600; font-weight:bold;">+</span><span style="color:#996600;">&quot;สวัสดีครับ&quot;</span>
a = <span style="color:#CC0066; font-weight:bold;">Array</span>.<span style="color:#9900CC;">new</span>
s.<span style="color:#9900CC;">each_char</span> <span style="color:#006600; font-weight:bold;">&#123;</span><span style="color:#006600; font-weight:bold;">|</span>c<span style="color:#006600; font-weight:bold;">|</span> a <span style="color:#006600; font-weight:bold;">&lt;&lt;</span> c<span style="color:#006600; font-weight:bold;">&#125;</span></pre></div></div>

<p>แค่นี้เราก็แยกตัวอักษรแต่ละตัวจาก s ไปไว้ในอะเรย์ a ได้เลย ตัวอักษรแต่ละตัวก็ยังเก็บในฐานะ String เหมือนเดิม ถ้ามองในแง่ความสะดวกแล้ว การทำแบบนี้ก็ง่ายดี แต่ดูแล้วมันต้องแปลงไปแปลงมาอยู่หลายรอบเหมือนกัน</p>
]]></content:encoded>
			<wfw:commentRss>http://cholwich.org/wordpress/2008/04/10/ruby-%e0%b8%81%e0%b8%b1%e0%b8%9a-utf8/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>เกรด</title>
		<link>http://cholwich.org/wordpress/2007/11/05/%e0%b9%80%e0%b8%81%e0%b8%a3%e0%b8%94/</link>
		<comments>http://cholwich.org/wordpress/2007/11/05/%e0%b9%80%e0%b8%81%e0%b8%a3%e0%b8%94/#comments</comments>
		<pubDate>Mon, 05 Nov 2007 11:57:25 +0000</pubDate>
		<dc:creator>cholwich</dc:creator>
				<category><![CDATA[Uncategorized]]></category>
		<category><![CDATA[บ่น]]></category>

		<guid isPermaLink="false">http://cholwich.org/wordpress/2007/11/05/%e0%b9%80%e0%b8%81%e0%b8%a3%e0%b8%94/</guid>
		<description><![CDATA[วันนี้มีเรื่องต่อว่ากันเกิดขึ้น เลยขอมาระบายไว้ที่นี้ว่า ผมไม่ได้อยากให้ใครสอบตก เพราะผมรู้ดีว่าคนได้รับจะทุกข์ใจแค่ไหน มันมีหลายเรื่องมาเกี่ยวข้อง ทั้งเรื่องเวลาที่จะต้องไปเรียนใหม่อีกรอบ เรื่องเงินที่จะต้องเสียตอนลงทะเบียนอีกรอบ (ซึ่งมันไม่ถูกเลย) แรกๆ ที่มาสอนหนังสือนี่ แทบจะให้เกรดต่ำสุดที่ C เพื่อเป็นการป้องการตัวเองทางจิตใจ ไม่ต้องคิดว่าใครจะมีปัญหา คิดว่าอย่างน้อยทุกคนคงจะรับได้ แต่ผมก็มีมาตรฐานทางวิชาการของผมเหมือนกัน ถ้าคนเรียนไม่ได้แสดงให้เห็นว่าได้พยายามอย่างเต็มที่แล้ว การต่อว่าอาจจะทำให้เซ็งในอารมณ์ จนต้องมาบ่นบ้าง แต่ก็คงไม่ทำให้มาตรฐานของผมเปลี่ยนไป ผมก็คงยังยืนอยู่ที่เดิม ยังคงทำอย่างนี้เหมือนเดิม เฮ้อ&#8230;.นี่ขนาดไม่ได้เจอกับตัวนะเนี่ย ]]></description>
			<content:encoded><![CDATA[<p>
วันนี้มีเรื่องต่อว่ากันเกิดขึ้น เลยขอมาระบายไว้ที่นี้ว่า ผมไม่ได้อยากให้ใครสอบตก เพราะผมรู้ดีว่าคนได้รับจะทุกข์ใจแค่ไหน มันมีหลายเรื่องมาเกี่ยวข้อง ทั้งเรื่องเวลาที่จะต้องไปเรียนใหม่อีกรอบ เรื่องเงินที่จะต้องเสียตอนลงทะเบียนอีกรอบ (ซึ่งมันไม่ถูกเลย) แรกๆ ที่มาสอนหนังสือนี่ แทบจะให้เกรดต่ำสุดที่ C เพื่อเป็นการป้องการตัวเองทางจิตใจ ไม่ต้องคิดว่าใครจะมีปัญหา คิดว่าอย่างน้อยทุกคนคงจะรับได้ แต่ผมก็มีมาตรฐานทางวิชาการของผมเหมือนกัน ถ้าคนเรียนไม่ได้แสดงให้เห็นว่าได้พยายามอย่างเต็มที่แล้ว การต่อว่าอาจจะทำให้เซ็งในอารมณ์ จนต้องมาบ่นบ้าง แต่ก็คงไม่ทำให้มาตรฐานของผมเปลี่ยนไป ผมก็คงยังยืนอยู่ที่เดิม ยังคงทำอย่างนี้เหมือนเดิม
</p>
<p>
เฮ้อ&#8230;.นี่ขนาดไม่ได้เจอกับตัวนะเนี่ย </p>
]]></content:encoded>
			<wfw:commentRss>http://cholwich.org/wordpress/2007/11/05/%e0%b9%80%e0%b8%81%e0%b8%a3%e0%b8%94/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>ทดสอบ</title>
		<link>http://cholwich.org/wordpress/2007/03/19/%e0%b8%97%e0%b8%94%e0%b8%aa%e0%b8%ad%e0%b8%9a%e0%b8%82%e0%b9%89%e0%b8%ad%e0%b8%84%e0%b8%a7%e0%b8%b2%e0%b8%a1/</link>
		<comments>http://cholwich.org/wordpress/2007/03/19/%e0%b8%97%e0%b8%94%e0%b8%aa%e0%b8%ad%e0%b8%9a%e0%b8%82%e0%b9%89%e0%b8%ad%e0%b8%84%e0%b8%a7%e0%b8%b2%e0%b8%a1/#comments</comments>
		<pubDate>Tue, 20 Mar 2007 04:23:16 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[Uncategorized]]></category>

		<guid isPermaLink="false">http://cholwich.org/wordpress/?p=3</guid>
		<description><![CDATA[ทดสอบการโพสต์ข้อความบน WordPress]]></description>
			<content:encoded><![CDATA[<p>ทดสอบการโพสต์ข้อความบน WordPress</p>
]]></content:encoded>
			<wfw:commentRss>http://cholwich.org/wordpress/2007/03/19/%e0%b8%97%e0%b8%94%e0%b8%aa%e0%b8%ad%e0%b8%9a%e0%b8%82%e0%b9%89%e0%b8%ad%e0%b8%84%e0%b8%a7%e0%b8%b2%e0%b8%a1/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

