|
|
|
ASP.NET C# - webClient.UploadValues ส่ง method POST ภาษาไทยอย่างไรครับ ตอนรับกลับมาแสดงภาษาไทยได้ แต่ส่งไปไม่ได้ |
|
|
|
|
|
|
|
ต้องดูการเข้ารหัส Charset ทั้งฝั่งส่งและฝั่งรับ ถ้าตรงกันก็น่าจะแสดงได้ไม่มีปัญหาครับ
|
|
|
|
|
Date :
2013-11-24 11:05:52 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ขอบคุณครับ คุณ 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 ก็สามารถอ่านออกได้ปกติ
ปล.
ลืม เครดิตให้ครับ code ที่ผมใช้ เรื่องการ encoding ให้อ่านภาษาไทยได้นี้ ได้จากการค้นหา และมาเจอบนเว็บไซต์นี้ครับ จึงได้เอามาปรับใช้ ต่อมา ก็ได้มาสมัครเป็นสมาชิก และโพสถามครับ
|
|
|
|
|
Date :
2013-11-25 06:44:10 |
By :
sandmanenter |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ปกติแล้วนิยมใช้ UTF-8 ครับ
|
|
|
|
|
Date :
2013-11-25 08:03:06 |
By :
mr.win |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ครับผม แต่ว่า เว็บที่เราส่ง POST ไปอ่านค่ามา ของเขาเป็น TIS-620 ครับ (เป็นเว็บของคนอื่น เลยเปลี่ยนของเขาไม่ได้ครับ)
|
|
|
|
|
Date :
2013-11-25 10:17:25 |
By :
sandmanenter |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 04
|