09/10/2018, 18:15

SOS Session.Copge=65001

Ko hiểu sao mình tạo trang Web=ngôn ngữ ASP mình có dùng đoạn code
<%
Session.Cope=65001
Response.Write Lê Minh Lộc
%>
thì nó hiển thị là Lê Minh Lá»™c
Bạn nào biết tại sao xin giúp đỡ dùm
à, trong trang web mình cũng đã có đoạn code
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
xacuop viết 20:17 ngày 09/10/2018
Sửa lại cho đúng nè:
Session.codepage=65001
Response.Write "<font face=""verdana"">Lê Minh Lộc</Font>"
NumPad0 viết 20:25 ngày 09/10/2018
CodePage 65001 hiển thị Unicode khá chính xác với những font chuẩn của Win32 như MS San Serif, Times New Roman, Tâhom hay Verdana.
Nhưng nếu bạn chạy trên PSW thì đó chính là nguyên nhân. Thậm chí PSW còn không hỗ trợ cả CodePage này nữa cơ.
Còn nếu bạn chạy ứng dụng trên Win2K thi sẽ không bị lỗi như trên kể cả khi hiển thị với font mặc định là Times New Roman.
ChinDangShun viết 20:29 ngày 09/10/2018
Thực ra CodePage 65001 là UTF-8 (1 byte luận lý biểu diễn các character 2 byte và binary data). Nó chỉ áp dụng cho IIS từ 5.0 trở lên thôi. Có nghĩa là phải có từ Win 2K mới dùng được !
ltuananh viết 20:17 ngày 09/10/2018
Thì tôi đang dùng IIS 5 đây, Window 2000 Advance Server. Cám ơn bạn xacuop, đoạn code của bạn tôi dùng rồi, nhưng vẫn ko được.
NumPad0 viết 20:21 ngày 09/10/2018
Vậy solution của bạn đây: Sử dụng notepad mở trang asp đó ra rồi save dưới dạng UFT-8. Hi vọng là bạn biết cách save như thế nào...
Chúc vui...
ChinDangShun viết 20:32 ngày 09/10/2018
1 trang ASP để thể hiện tiếng Việt unicode được thì cần phải có 3 yếu tố sau:
- Do trang ASP không hỗ trợ unicode 2 byte (không như trang HTML) nên cần phải lưu trang ASP thành UTF-8 (Một dạng Unicode được biểu diễn trên ASCII - Các ký tự nằm trong khoảng 0-255 sẽ là 1 byte, các ký tự có scancode cao hơn sẽ được biểu diễn bằng 2 hoặc 3 byte đứng liên tiếp). Thông thường bạn sử dụng NotePad để viết code và lưu !
- Trang ASP phải được cấu hình để xử lý Unicode thành UTF-8: <% @CodePage = 65001 %>. Nếu ko có Code này thì biến varName = "Lê Minh Lộc" sẽ bị ASP hiểu là "L" & ChrW(0234) & " Minh L" & ChrW(&H1ED9) & "c". Do vậy sẽ không hiển thị chính xác UTF-8 (Vì đây là chuỗi 2 byte Unicode).
- Trang ASP lúc đưa ra trình duyệt sẽ trở thành trang HTML. Để hiển thị trang HTML Unicode dạng UTF-8 thì cần phải có:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

--> Mình gửi kèm cho bạn 1 ví dụ theo đúng những gì bạn mô tả. Bạn hãy download file TestUTF8.txt đính kèm rồi chuyển thành ASP và chạy.
Chúc thành công !
NumPad0 viết 20:17 ngày 09/10/2018
Quote Được gửi bởi ChinDangShun
1 trang ASP để thể hiện tiếng Việt unicode được thì cần phải có 3 yếu tố sau:
- Do trang ASP không hỗ trợ unicode 2 byte (không như trang HTML) nên cần phải lưu trang ASP thành UTF-8 (Một dạng Unicode được biểu diễn trên ASCII - Các ký tự nằm trong khoảng 0-255 sẽ là 1 byte, các ký tự có scancode cao hơn sẽ được biểu diễn bằng 2 hoặc 3 byte đứng liên tiếp). Thông thường bạn sử dụng NotePad để viết code và lưu !
- Trang ASP phải được cấu hình để xử lý Unicode thành UTF-8: <% @CodePage = 65001 %>. Nếu ko có Code này thì biến varName = "Lê Minh Lộc" sẽ bị ASP hiểu là "L" & ChrW(0234) & " Minh L" & ChrW(&H1ED9) & "c". Do vậy sẽ không hiển thị chính xác UTF-8 (Vì đây là chuỗi 2 byte Unicode).
- Trang ASP lúc đưa ra trình duyệt sẽ trở thành trang HTML. Để hiển thị trang HTML Unicode dạng UTF-8 thì cần phải có:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">

--> Mình gửi kèm cho bạn 1 ví dụ theo đúng những gì bạn mô tả. Bạn hãy download file TestUTF8.txt đính kèm rồi chuyển thành ASP và chạy.
Chúc thành công !
Ông biết quá nhiều vê Unicode đóa. Nhưng lỗi ở đây là chưa save file asp với encoding là UTF-8 thôi. Đã được giải quyết!
ltuananh viết 20:21 ngày 09/10/2018
Cám ơn ChimdangShun, chỉ cần thêm dòng <% Response.Expires = -1 %> của bạn thôi là được rồi.
xacuop viết 20:25 ngày 09/10/2018
<% Response.Expires = -1 %>
Nó có nghiã gì vậy? sao xacuop ko cần mà vẫn gõ được unicode? trong trường hợp nào thì cần cái đó? Ai giải thích dùm xacuop voi.
Bài liên quan
0