ดึงข้อมูลจากเว็บไซท์ หรือไฟล์ข้อมูลที่เป็นภาษาไทยด้วย C#


ดึงข้อมูลจากเว็บไซท์ หรือไฟล์ข้อมูลที่เป็นภาษาไทยด้วย C#

ในการดึงข้อมูลจากเว็บไซท์อื่นๆ หรือว่าจากไฟล์ข้อมูลที่เป็นภาษาไทยนั้น ในบางครั้งจะเห็นได้ว่าเราดึงมาแล้วไม่ยอมเป็นภาษาไทย นั่นเป็นเพราะว่าเราจัดการกับเรื่องของ Encoding ของไฟล์หรือเว็บที่เราต้องการไม่ถูกต้อง

ซึ่งถ้าเราเลือกใช้งาน Encoding ที่ถูกต้องตามที่ไฟล์เก็บแล้ว เราก็จะได้ข้อมูลเป็นภาษาไทยตามที่เราต้องการได้ โดยเราสามารถเขียนทดสอบให้ดูง่ายๆดังต่อไปนี้

---------------------------------------------------------------------------------
WebClient objWebClient = new WebClient();
String strURL = http://www.thailyrics.com/lyric/thai/lyric.asp?id=4307;
String strRequest;

UTF8Encoding objUTF8 = new UTF8Encoding();
Encoding objEncoding = Encoding.GetEncoding("Windows-874");

Byte[] byteRequest = objWebClient.DownloadData(strURL);
strRequest = objEncoding.GetString(byteRequest);
---------------------------------------------------------------------------------

[อธิบายโค้ด]
1. สร้างตัวแปรอ็อบเจ็คชื่อ objWebClient จากคลาส WebClient โดยอ็อบเจ็คตัวนี้จะเอาไว้โหลดข้อมูลจากเว็บไซท์ โดยจะต้องทำการอิมพอร์ทคลาส System.Net เข้ามาด้วย


               WebClient objWebClient = new WebClient();


2. สร้างตัวแปร strURL สำหรับเก็บชื่อของเว็บไซท์ที่เราต้องการจะเข้าไปดึงข้อมูลมา

               String strURL = http://www.thailyrics.com/lyric/thai/lyric.asp?id=4307;


3. สร้างตัวแปร objRequest เป็บตัวแปรแบบไบท์ เพื่อรับข้อมูลที่เราจะโหลดมาจากเว็บไซท์

               Byte[] byteRequest = objWebClient.DownloadData(strURL);


4. สร้างตัวแปร objEncoding และ objUTF8 ให้ตรงกับข้อมูลที่เราต้องการจะดาวว์โหลดมา โดยในที่นี้จะสร้างให้ดูเป็น utf-8 และ windows-874

               UTF8Encoding objUTF8 = new UTF8Encoding();
               Encoding objEncoding = Encoding.GetEncoding("Windows-874");



5. ทำการแปลงข้อมูลที่ได้จากการดาวว์โหลดและอยู่ในรูปแบบของไบท์ ให้อยู่ในรูปแบบของสตริง โดยใช้เมธอด GetString() ที่สร้างจากคลาส Encoding

               strRequest = objEncoding.GetString(byteRequest);

หมายเลขบันทึก: 195184เขียนเมื่อ 20 กรกฎาคม 2008 01:44 น. ()แก้ไขเมื่อ 22 มิถุนายน 2012 13:10 น. ()สัญญาอนุญาต: จำนวนที่อ่านจำนวนที่อ่าน:


ความเห็น (0)

ไม่มีความเห็น

พบปัญหาการใช้งานกรุณาแจ้ง LINE ID @gotoknow
ClassStart
ระบบจัดการการเรียนการสอนผ่านอินเทอร์เน็ต
ทั้งเว็บทั้งแอปใช้งานฟรี
ClassStart Books
โครงการหนังสือจากคลาสสตาร์ท