2012-02-24 26 views
6

Nếu tôi viết một tệp php mới và bao gồm echo "current mb_internal_encoding: ".mb_internal_encoding(), giá trị đầu ra sẽ đến từ đâu? Làm thế nào là nó "quyết định"/nó được điều chỉnh như thế nào?Giá trị mb_internal_encoding() mặc định đến từ đâu?

Bối cảnh: Tôi đã viết một ứng dụng web mà tôi nghĩ rằng tôi đã làm tất cả mọi thứ để thiết lập toàn bộ trang web sang UTF-8 và thấy rằng tôi vẫn còn cần thiết để thiết lập giá trị này bằng tay ...

Trả lời

6

Nó phụ thuộc vào các thiết lập của mbstring.internal_encoding in php.ini.

+1

Thú vị. Tôi có '; mbstring.internal_encoding = EUC-JP' để nó không hoạt động. Tôi cũng tìm thấy '; mbstring.language = Japanese','; mbstring.http_output = SJIS'. Tôi đang phát triển bằng cách sử dụng ngăn xếp WAMPserver, tôi không biết tại sao tất cả những thứ đó được đặt thành bộ ký tự Jpz. Bất kỳ lý do nào tại sao tôi không nên xem toàn bộ php.ini và thay thế bất kỳ đề cập nào của bất kỳ bộ ký tự nào bằng ''utf-8''? – JDelage

+0

Nếu tôi không đặt thủ công, 'mb_internal_encoding()' xuất hiện dưới dạng ISO-8859-1 ... – JDelage

+1

Jup, vì một số lý do PHP thích ISO-8859 làm mặc định. Bạn nên xử lý các cài đặt này trong ứng dụng của mình để giữ cho nó có thể di động. Thay đổi php.ini ở mọi nơi bạn muốn triển khai ứng dụng của mình thường không phải là giải pháp tiện lợi nhất. – deceze

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