Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,027

HOME > .NET Framework > Forum > ASP.NET C# - webClient.UploadValues ส่ง method POST ภาษาไทยอย่างไรครับ ตอนรับกลับมาแสดงภาษาไทยได้ แต่ส่งไปไม่ได้



 

ASP.NET C# - webClient.UploadValues ส่ง method POST ภาษาไทยอย่างไรครับ ตอนรับกลับมาแสดงภาษาไทยได้ แต่ส่งไปไม่ได้

 



Topic : 102994



โพสกระทู้ ( 0 )
บทความ ( 0 )



สถานะออฟไลน์




Code (C#)
public string GetTrans(string txt1, string txt2)
    {

        WebClient webClient = new WebClient();
        webClient.Headers.Add("user-agent", "Mozilla/5.0 (Windows NT 6.2; WOW64) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.97 Safari/537.11 AlexaToolbar/alxg-3.1");

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

        string result = "";

        try
        {
            NameValueCollection param = new NameValueCollection();

            Encoding w874 = Encoding.GetEncoding("Windows-874");
            Byte[] txtbyte = w874.GetBytes(txt2);
            //Response.Write(objEncoding.GetString(txtbyte));
            txt2 = objEncoding.GetString(txtbyte);

            Response.Write(txt2);

            param.Add(txt1, txt2);

            Byte[] byteRequest = webClient.UploadValues("http://xxx.xxxxxx.xxx/xxxx.asp", "POST", param);

            result = objEncoding.GetString(byteRequest);

            int rang = result.IndexOf("</center></body>") - result.IndexOf("<body bgcolor=\"FFDA89\"><center>");
            //Response.Write(rang);
            result = result.Substring(result.IndexOf("<body bgcolor=\"FFDA89\"><center>") + 31, rang);
        }
        catch (Exception ex)
        {
            Response.Write(" :: ! GetTrans = " + ex.Message);
            result = "Found some wrong!";
        }

        return result;
    }


ส่งข้อมูลด้วย method POST ไปยังเว็บไซต์ และรับเนื้อหากลับมาแสดงที่เว็บเราครับ เว็บที่เราจะเอาข้อมูลมาแสดงเป็น windows-874 เราสามารถดึงผลลัพธ์มาแสดงเป็นภาษาไทยได้อย่างถูกต้อง แต่ ข้อความที่เราส่งไป มันเป็นตัวขยึกขยือ ที่ทราบเพราะว่า เวลาแสดงผลออกมา ภาษษาไทยส่วนอื่นๆ แสดงถูกต้องหมด แต่ส่วนของข้อความที่เราส่งไป ซึ่งรวมอยู่ในหน้าผลลัพธ์ มันเป็นตัวอักษรไทยที่อ่านไม่ออกครับ ส่ง ก ไป ผลออกมาเป็น "คำ เธ ค้นไม่เจอ โปรดพิมพ์ใหม่" คือ ก ที่เราส่งไป มันกลายเป็น เธ แบบนี้ครับ

จึงคิดว่า ปัญหาน่าจะเกิดจาก ต่อส่งไป ยังตั้ง charset ให้เป็น windows-874 ไม่ได้ ตั้งได้แค่ตอนได้ผลลัพธ์กลับมา รบกวนช่วยแนะนำด้วยครับ



Tag : .NET, C#, VS 2010 (.NET 4.x)







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2013-11-23 21:52:40 By : sandmanenter View : 2338 Reply : 4
 

 

No. 1



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

ต้องดูการเข้ารหัส Charset ทั้งฝั่งส่งและฝั่งรับ ถ้าตรงกันก็น่าจะแสดงได้ไม่มีปัญหาครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-11-24 11:05:52 By : mr.win
 


 

No. 2



โพสกระทู้ ( 0 )
บทความ ( 0 )



สถานะออฟไลน์


ขอบคุณครับ คุณ mr.win

ผมทดลองเปลี่ยนไปมาหลายรอบ ตรงบรรทัด result = objEncoding.GetString(byteRequest); จะเห็นผลครับ หากเปลี่ยนเป็น utf-8 ก็จะอ่านไม่ออกเลย แต่หากเปลี่ยนเป็น windows-874 หรือ tis-620 ก็จะอ่านภาษาไทยได้ปกติ

แต่เมื่อเปลี่ยน charset ที่

Code (C#)
Encoding w874 = Encoding.GetEncoding("Windows-874");
Byte[] txtbyte = w874.GetBytes(txt2);
txt2 = objEncoding.GetString(txtbyte);


ลองเปลี่ยนเป็นอย่างอื่นดู จะไม่ส่งผลกระทบอะไรเลย

คล้ายๆกับว่า webClient.UploadValues ไม่สนใจ charset ที่เราเปลี่ยนก่อนส่งไปครับ ทำให้ผลลัพธ์เป็นดังรูปด่านล่าง คือส่วนที่เรา post ไป จะกลายเป็นอ่านไม่ออก แต่ส่วนที่เว็บเขาดึงข้อมูลมาจาก database ก็สามารถอ่านออกได้ปกติ

ตั้ง charset สำหรับเมธอท โพส ไม่ได้

ปล.
ลืม เครดิตให้ครับ code ที่ผมใช้ เรื่องการ encoding ให้อ่านภาษาไทยได้นี้ ได้จากการค้นหา และมาเจอบนเว็บไซต์นี้ครับ จึงได้เอามาปรับใช้ ต่อมา ก็ได้มาสมัครเป็นสมาชิก และโพสถามครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-11-25 06:44:10 By : sandmanenter
 

 

No. 3



โพสกระทู้ ( 74,058 )
บทความ ( 838 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์
Twitter Facebook

ปกติแล้วนิยมใช้ UTF-8 ครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-11-25 08:03:06 By : mr.win
 


 

No. 4



โพสกระทู้ ( 0 )
บทความ ( 0 )



สถานะออฟไลน์


ครับผม แต่ว่า เว็บที่เราส่ง POST ไปอ่านค่ามา ของเขาเป็น TIS-620 ครับ (เป็นเว็บของคนอื่น เลยเปลี่ยนของเขาไม่ได้ครับ)
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-11-25 10:17:25 By : sandmanenter
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : ASP.NET C# - webClient.UploadValues ส่ง method POST ภาษาไทยอย่างไรครับ ตอนรับกลับมาแสดงภาษาไทยได้ แต่ส่งไปไม่ได้
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 05
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่