2012-02-09 32 views
5

Tôi cần biết liệu tôi có thể sử dụng chuỗi bình thường một cách an toàn không hoặc tôi phải sử dụng chuỗi mb_* khi tôi làm việc trên $_SERVER vars. (UTF-8)

Ví dụ: $_SERVER['HTTP_HOST'] có thể chứa các ký tự nhiều byte?

Điều gì sẽ xảy ra nếu tôi thực hiện yêu cầu http với Host: header có chứa các ký tự nhiều byte?
Và nơi khách hàng có thể chỉ định việc sử dụng econding nào khi anh ta thực hiện yêu cầu http?

Trả lời

4

Có, bạn nên sử dụng multibyte. Nếu không có bất kỳ điều gì khác, có các tên miền không có tên miền, do đó, $_SERVER phải bao gồm dữ liệu utf8 một cách tự nhiên.

+0

Có, 'accept-charset' cung cấp danh sách mã hóa mà máy khách hỗ trợ, do đó máy chủ sẽ quyết định sử dụng mã nào làm phản hồi. –

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