Trang 1 trên tổng số 2 12 Cuối cùngCuối cùng
Từ 1 tới 10 trên tổng số 11 kết quả

Đề tài: Lỗi chữ tiếng Việt khi sử dụng HttpWebRequest post lên server?

  1. #1
    Ngày gia nhập
    10 2008
    Bài viết
    4

    Mặc định Lỗi chữ tiếng Việt khi sử dụng HttpWebRequest post lên server?

    Hình đang viết một phần mềm tự động viết bài lên forum mình đã thành công rồi như bị lỗi kiểu chữ nó lỗi vầy


    đây là đoạn code của mình
    Visual C# Code:
    1.    string s = string.Format("encoding=UTF-8&prefixid=1&subject={0}&AVIMMethod=on&message={1}&wysiwyg=1&taglist=&iconid=0&s=&securitytoken={2}&f={3}&do=postthread&posthash={4}&poststarttime={5}&loggedinuser={6}&sbutton=G%E1%BB%ADi+b%C3%A0i+m%E1%BB%9Bi&signature=1&parseurl=1&emailupdate=9999&polloptions=4",
    2.             HttpUtility.UrlEncode( txtLieude.Text.Trim()), //subject
    3.            HttpUtility.UrlEncode(txtNoiDung.Text.Trim()), //message
    4.               securitytoken, //securitytoken
    5.               forumid, //f
    6.               posthash, //posthash
    7.               poststarttime, //poststarttime
    8.               loggedinuser //loggedinuser
    9.           );
    10.             HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(requestUriString);
    11.             httpWebRequest.Method = "POST";
    12.             httpWebRequest.CookieContainer = cookieCache;
    13.          
    14.             httpWebRequest.ContentType = "application/x-www-form-urlencoded; charset=UTF-8";
    15.             httpWebRequest.Headers.Add("Content-Transfer-Encoding", "binary");
    16.             ASCIIEncoding encoding = new ASCIIEncoding();
    17.             byte[] bytes =  Encoding.UTF8.GetBytes(s);
    18.             httpWebRequest.ContentLength = (long)bytes.Length;
    19.             httpWebRequest.AllowAutoRedirect = true;
    20.             Stream requestStream = httpWebRequest.GetRequestStream();
    21.        
    22.             requestStream.Write(bytes, 0, bytes.Length);
    23.             requestStream.Close();
    24.             HttpWebResponse httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse();
    25.             StreamReader reader = new StreamReader(httpWebResponse.GetResponseStream(),  System.Text.Encoding.UTF8);
    26.             string document = reader.ReadToEnd().Trim();

    ai có kinh nghiệp hướng dẫn mình vấn đề này với
    Đã được chỉnh sửa lần cuối bởi vantrung87hvt : 11-09-2011 lúc 01:14 AM.

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

    đấy là bạn gửi dữ liệu theo encoding là UTF-8. Có lẽ forum đó để mặc định Encoding là ISO-8859-1 . Bằng firefox bạn vào View-->Character Encoding-->UTF-8 thì font sẽ bình thường

  3. #3
    Ngày gia nhập
    05 2008
    Bài viết
    115

    Trước đây mình cũng có viết 1 cái post bài lên các forum vbulletin, bạn thử xem lại ContentType xem

    Đây là đoạn của mình

    Visual C# Code:
    1. byte[] data = Encoding.UTF8.GetBytes(postData);
    2.  
    3. HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(collectionLink.Address + "newthread.php?do=newthread&f=" + collectionLink.Fid.ToString());
    4.  
    5. httpWebRequest.Method = "POST";
    6. httpWebRequest.ContentType = "application/x-www-form-urlencoded";
    7. httpWebRequest.ContentLength = data.Length;
    8.  
    9. httpWebRequest.CookieContainer = new CookieContainer();
    10. httpWebRequest.CookieContainer.Add(cc);          
    11.  
    12. {
    13.     // Send the data
    14.     Stream newStream = httpWebRequest.GetRequestStream();
    15.     newStream.Write(data, 0, data.Length);
    16.     newStream.Close();
    17.     httpWebRequest.Credentials = CredentialCache.DefaultCredentials;
    18.  
    19.     WebResponse response = httpWebRequest.GetResponse();
    20.  
    21.     WadWebUserR storeLink = new WadWebUserR();
    22.     storeLink.Webid = collectionLink.Id;
    23.     storeLink.Linkposted = httpWebRequest.GetResponse().ResponseUri.AbsoluteUri;
    24.     storeLink.DatePosted = DateTime.Now;
    25.     storeLink.TimesId = timeId;
    26.  
    27.     CommonFactory.Insert(storeLink);
    28.  
    29.     return true;
    30. }
    31. catch (Exception ex)
    32. {
    33.     return false;
    34. }
    Ebooks dành cho dế yêu của bạn: http://sachdidong.com/
    Góc nhỏ của tôi: http://seekill.com/

  4. #4
    Ngày gia nhập
    10 2008
    Bài viết
    4

    Trích dẫn Nguyên bản được gửi bởi kiddevv Xem bài viết
    đấy là bạn gửi dữ liệu theo encoding là UTF-8. Có lẽ forum đó để mặc định Encoding là ISO-8859-1 . Bằng firefox bạn vào View-->Character Encoding-->UTF-8 thì font sẽ bình thường
    nếu bình dùng code chuyển trong c# thì như thế nào vậy bạn

    mình dùng
    Code:
    byte[] result = Encoding.Convert(Encoding.UTF8, Encoding.GetEncoding("iso-8859-1"), input);
    song vẫn còn lỗi

    Đã được chỉnh sửa lần cuối bởi vantrung87hvt : 11-09-2011 lúc 02:12 PM.

  5. #5
    Ngày gia nhập
    10 2008
    Bài viết
    4

    Trích dẫn Nguyên bản được gửi bởi seekill Xem bài viết
    Trước đây mình cũng có viết 1 cái post bài lên các forum vbulletin, bạn thử xem lại ContentType xem

    Đây là đoạn của mình

    Visual C# Code:
    1. byte[] data = Encoding.UTF8.GetBytes(postData);
    2.  
    3. HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(collectionLink.Address + "newthread.php?do=newthread&f=" + collectionLink.Fid.ToString());
    4.  
    5. httpWebRequest.Method = "POST";
    6. httpWebRequest.ContentType = "application/x-www-form-urlencoded";
    7. httpWebRequest.ContentLength = data.Length;
    8.  
    9. httpWebRequest.CookieContainer = new CookieContainer();
    10. httpWebRequest.CookieContainer.Add(cc);          
    11.  
    12. {
    13.     // Send the data
    14.     Stream newStream = httpWebRequest.GetRequestStream();
    15.     newStream.Write(data, 0, data.Length);
    16.     newStream.Close();
    17.     httpWebRequest.Credentials = CredentialCache.DefaultCredentials;
    18.  
    19.     WebResponse response = httpWebRequest.GetResponse();
    20.  
    21.     WadWebUserR storeLink = new WadWebUserR();
    22.     storeLink.Webid = collectionLink.Id;
    23.     storeLink.Linkposted = httpWebRequest.GetResponse().ResponseUri.AbsoluteUri;
    24.     storeLink.DatePosted = DateTime.Now;
    25.     storeLink.TimesId = timeId;
    26.  
    27.     CommonFactory.Insert(storeLink);
    28.  
    29.     return true;
    30. }
    31. catch (Exception ex)
    32. {
    33.     return false;
    34. }
    cách bạn cũng giống cách mình mà không hiểu sao mình bị vậy

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

    Mặc định Lỗi chữ tiếng Việt khi sử dụng HttpWebRequest post lên server?

    mình biết nếu forum VBB mà dùng encoding là ISO-8859-1 thì kiểu chữ nó sẽ lưu trữ dạng HTML Encode kiểu như chữ ư thì trong database nó là &.#.432; (ko có dấu chấm); . Ko thì view source nó ra là biết. Bạn thử tìm hiểu nó xem

  7. #7
    Ngày gia nhập
    10 2008
    Bài viết
    4

    Trích dẫn Nguyên bản được gửi bởi kiddevv Xem bài viết
    mình biết nếu forum VBB mà dùng encoding là ISO-8859-1 thì kiểu chữ nó sẽ lưu trữ dạng HTML Encode kiểu như chữ ư thì trong database nó là &.#.432; (ko có dấu chấm); . Ko thì view source nó ra là biết. Bạn thử tìm hiểu nó xem
    mình đã thử khá nhiều cách cũng có Encode cái chuỗi đó các ký tự sẽ chuyển thành &.#.432; những dấu & sẽ làm nó trở thành một cái resquet cách mới khổ

    chẳng lẽ thua chỗ này nhỉ

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

    chẳng lẽ thua chỗ này nhỉ
    khi request bạn encode nó thành URL encode là đc. thử đi nhé

  9. #9
    Ngày gia nhập
    10 2008
    Bài viết
    258

    Bạn thử thay ASCIIEncoding bằng UTF8Encoding xem sao?
    Anh yêu em hí hí

  10. #10
    Ngày gia nhập
    04 2009
    Bài viết
    24

    Mình cũng đang tim hiểu vấn đề này.
    bạn cho mình code của bạn với đi
    Thằng Thích Thằng Chê Mặc Kệ Người Đời Soi Mói. Tao Thích Tao Làm Tao Làm, Tao Làm Những Gì Tao Thích

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

  1. httpwebrequest post cookie không chạy
    Gửi bởi longxoay trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 8
    Bài viết cuối: 17-10-2013, 05:38 PM
  2. Algorithm POST HTTPWebrequest vô trang dongabank không hoạt động
    Gửi bởi nghich3 trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 8
    Bài viết cuối: 02-11-2012, 03:37 PM
  3. Mang sql server database lên máy khác [Hướng dẫn chi tiết + code]
    Gửi bởi longtth trong diễn đàn Tutorials và Thủ thuật lập trình C#, ASP.NET
    Trả lời: 0
    Bài viết cuối: 21-03-2012, 04:31 AM
  4. Cách gửi data(usename và password) lên server bằng httpwebrequest!
    Gửi bởi vninfo trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 1
    Bài viết cuối: 25-02-2012, 06:10 PM
  5. Socket POST dữ liệu kiểu multipart/form-data dùng Httpwebrequest sau đăng nhập
    Gửi bởi lytrongkhoa trong diễn đàn Thắc mắc lập trình C#
    Trả lời: 0
    Bài viết cuối: 29-09-2011, 09:55 AM

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