2010-01-26 42 views
5

Trang web nơi tôi gọi hàm window.open() bằng UTF-8, sử dụng thẻ <meta>, mọi thứ hoạt động tốt, nhưng khi tôi gọi hàm và mở một cửa sổ khác cùng một thẻ, cửa sổ mới hiển thị các ký tự lạ ngay cả khi được suy nghĩ trong thông tin trang, nó cho thấy rằng mã hóa vẫn giữ nguyên (UTF-8).Thay đổi mã hóa ký tự sau khi window.open()

Đây là vấn đề tương tự như tôi: http://bytes.com/topic/javascript/answers/622922-character-encoding-after-window-open

Trả lời

0

Nếu trình duyệt sử dụng mã hóa tương tự cho cả hai trang (trong đó, rõ ràng, nó không) thì vấn đề phải nằm trong trang đó. Nó có thể chứa UTF-8 không hợp lệ để bắt đầu.

+0

Không, nó được viết trong cùng một trình soạn thảo (hoạt động tốt). Và cũng có thể, nếu tôi không mở nó trong một cửa sổ mới, nó hoạt động tốt. – LuRsT

+0

Lạ ... Bạn có thể tái tạo nó trong trình duyệt khác không? – Thomas

+0

Yup, nó giống nhau trong FF 3.5 và trong ie8. Tôi cũng đã thêm một liên kết đến câu hỏi của tôi về một người có cùng vấn đề. – LuRsT

2

Tôi đã gặp sự cố tương tự.

Vấn đề hóa ra là tôi đã đặt "Session.CodePage = 65001" trong cửa sổ được mở. Điều đó đã làm hỏng mã hóa ký tự cho phiên đó. Vì vậy, khi tôi làm mới trang "chính", một số ký tự (chẳng hạn như åäö) đột nhiên bị cắt xén.

Giải pháp: đảm bảo trang trong cửa sổ mới không thay đổi trang mã của phiên. Chúc may mắn!

2

Tôi đã gặp vấn đề tương tự. Chỉ cần sử dụng unescape(decodeURIComponent(YOUR_URL)) bên trong window.open().

Ví dụ: window.open(unescape(decodeURIComponent(YOUR_URL)), '_blank');

Hy vọng điều đó sẽ hữu ích.

1

Thêm thuộc tính charset = "UTF-8" vào thẻ javascript của bạn. Điều này sẽ ít nhất là làm việc nếu nguyên nhân của các nhân vật bị cắt xén là javascript của bạn bao gồm.

Các vấn đề liên quan