Từ 1 tới 6 trên tổng số 6 kết quả

Đề tài: Format chuỗi trả về từ XmlHttpRequest như thế nào

  1. #1
    Ngày gia nhập
    01 2011
    Bài viết
    18

    Mặc định Format chuỗi trả về từ XmlHttpRequest như thế nào

    Mình nhận được chuỗi sau khi dùng StreamReader.ReadToEnd() khi get dữ liệu từ website về :
    Code:
    {"mess":"S\u1ed1 Seri ho\u1eb7c m\u1eadt m\u00e3 th\u1ebb kh\u00f4ng \u0111\u00fang"}
    Mình cần lấy nguyên văn cái mess nhưng nó đã bị encode mà mình tìm mãi cũng không biết nó encode kiểu nào, search cũng không biết nên dùng từ khóa nào nên mang lên đây nhờ mọi người giúp đỡ.
    Mình đang dùng net 2.0, nhưng nếu có giải pháp nào dùng net 4.0 vẫn được nhé các bạn.

  2. #2
    Ngày gia nhập
    08 2012
    Bài viết
    574

    \uXXXX (X từ 0 đến F).
    Đây là mã hóa theo kiểu thoát kí tự Unicode. Các kí tự từ 128 trở đi (0x80) sẽ được thoát về dạng \uXXXX. Hầu hết các ngỗn ngữ lập trình có hỗ trợ Unicode đều có cách thoát kí tự kiểu này. Do tập tin JSON này đã được thoát kí tự thoát nên nó về dạng như vậy.
    Mục đích của cách thoát này là có thể dùng những kí tự ANSI vẫn có thể lưu được các kí tự Unicode. Tập tin định dạng JSON luôn ở kiểu mã hóa là ANSI.

    Lúc trước mình có viết 1 đoạn thoát và bỏ thoát cách này cho Java. Cách đây ko lâu mình cũng đã chuyển mã về C#. Cần thì mình cho tham khảo.

    Trong Javascript có sẵn 1 lớp hỗ trợ chuyển từ JSON qua một đối tượng.

    Viết thử trong C#:
    Visual C# Code:
    1. MessageBox.Show("S\u1ed1 Seri ho\u1eb7c m\u1eadt m\u00e3 th\u1ebb kh\u00f4ng \u0111\u00fang");  // Số Seri hoặc mật mã thẻ không đúng
    2.  
    3. // Thoát kí tự thoát
    4. MessageBox.Show("S\\u1ed1 Seri ho\\u1eb7c m\\u1eadt m\\u00e3 th\\u1ebb kh\\u00f4ng \\u0111\\u00fang"); // S\u1ed1 Seri ho\u1eb7c m\u1eadt m\u00e3 th\u1ebb kh\u00f4ng \u0111\u00fang
    Đã được chỉnh sửa lần cuối bởi SITUVNX : 21-01-2013 lúc 05:43 PM.

  3. #3
    Ngày gia nhập
    01 2011
    Bài viết
    18

    Nếu bạn có code mẫu cho mình xem qua thì tốt quá rồi. Hoặc nếu không bạn có thể gợi ý cho mình vài từ khóa để tham khảo được không, căn bản mình hơi kém nên cũng muốn học hỏi thêm ở các định nghĩa.

    Ở 1 trang decode online mình thấy nó đề loại là ECMAscript decode, và đúng là decode ra được chuỗi unicode, cũng đang đọc nhưng chẳng thấy liên quan gì cả

  4. #4
    Ngày gia nhập
    08 2012
    Bài viết
    574

    Mình làm 2 phương thức:
    - String Escape(String): dùng để chuyển từ dạng các kí tự Unicode về dạng \uXXXX.
    - String UnEscape(String): từ dạng \uXXXX về các kí tự Unicode.
    Trong cả hai phương thức đều xét lần lượt qua các kí tự để đổi về dạng tương ứng.

    Mình chưa rõ trong C# có lớp nào hỗ trợ thoát kiểu này không. Mình dở hơi lắm, có khi lớp nào đó có hỗ trợ rồi, nhưng mình thích tự tạo 1 lớp riêng của mình.

  5. #5
    Ngày gia nhập
    07 2011
    Bài viết
    59

    Trong này có vài kiểu encode của C#, bạn vào xem rồi thử lần lược xem kiểu nào decode được khiểu encode trên: http://stackoverflow.com/questions/5...-using-c-sharp

  6. #6
    Ngày gia nhập
    01 2011
    Bài viết
    18

    Mặc định Format chuỗi trả về từ XmlHttpRequest như thế nào

    Cảm ơn mọi người đã giúp đỡ. Rất đơn giản :
    Visual C# Code:
    1. string st = "S\\u1ed1 Seri ho\\u1eb7c m\\u1eadt m\\u00e3 th\\u1ebb kh\\u00f4ng \\u0111\\u00fang";
    2. MessageBox.Show(Regex.Unescape(st));
    3. //Số seri hoặc mã thẻ không đúng

Các đề tài tương tự

  1. Mảng trên C Thắc mắc về xóa khoảng trắng cuối chuỗi
    Gửi bởi maphongba008 trong diễn đàn Nhập môn lập trình C/C++
    Trả lời: 4
    Bài viết cuối: 30-12-2012, 04:41 PM
  2. Làm thế nào để hàm trả về được 1 chuỗi các bác nhỉ
    Gửi bởi hoangnam2212 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 16
    Bài viết cuối: 27-05-2011, 02:09 PM
  3. Kỹ thuật C++ Các quy tắc nhập chuỗi trong C++, làm thế nào để nhập chuỗi có khoảng trắng?
    Gửi bởi quyen1991 trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 1
    Bài viết cuối: 20-11-2010, 03:36 PM
  4. Lập trình C++ thắc mắc hàm thêm khoảng trắng vào đầu và cuối chuỗi
    Gửi bởi manocanh trong diễn đàn Thắc mắc lập trình C/C++/C++0x
    Trả lời: 4
    Bài viết cuối: 11-11-2010, 07:46 PM
  5. DateTime Format? How to fix value when format string don't contains year
    Gửi bởi zxc trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 4
    Bài viết cuối: 25-08-2008, 11:19 PM

Quyền hạn của bạn

  • Bạn không thể gửi đề tài mới
  • Bạn không thể gửi bài trả lời
  • Bạn không thể gửi các đính kèm
  • Bạn không thể chỉnh sửa bài viết của bạn