C# .net ทำไม unicode แปลงกลับเป็นอักษรไทยไม่ได้ เวลา return json ทั้งๆๆที่ set เป็น toString งง ปวดหัวมากเลย

C# .net ทำไม unicode แปลงกลับเป็นอักษรไทยไม่ได้ เวลา return json ทั้งๆๆที่ set เป็น toString งง ปวดหัวมากเลย  ลองดู 2 ข้อนี้นะ แตกต่างอลังการมาก

1.String a =JJ.querykey("3", "kk").Replace(" ", "").ToString();
MessageBox.Show(a);  ได้ค่า "\u0e21\u0e2b\u0e32\u0e27\"
แต่ถ้าเอา unicode มาใส่เพียวๆ เวลารันกลับแปลงได้ งง มาก

2.  String b = "\u0e21\u0e2b\u0e32\u0e27\";
MessageBox.Show(b);  c# กลับแปลงให้เป็น คำว่า "มหา"

ปัญหาอยู่ที่ข้อ 1 คือตัวแปร String a
String a =JJ.querykey("3", "kk").Replace(" ", "").ToString();
MessageBox.Show(a);  

Byte[] encodedBytes = utf8.GetBytes(a);
String decodedString = utf8.GetString(encodedBytes);

MessageBox.Show(decodedString); ก็ยังได้ค่า  "\u0e21\u0e2b\u0e32\u0e27\"
คำตอบที่ได้รับเลือกจากเจ้าของกระทู้
ความคิดเห็นที่ 4
System.Text.RegularExpressions.Regex.Unescape("\u0e21\u0e2b\u0e32\u0e27")
หรือ
System.Uri.UnescapeDataString("\u0e21\u0e2b\u0e32\u0e27")
แสดงความคิดเห็น
โปรดศึกษาและยอมรับนโยบายข้อมูลส่วนบุคคลก่อนเริ่มใช้งาน อ่านเพิ่มเติมได้ที่นี่