Я сохранил файл с именем «File1.txt» с контентом (английский и иврит) «שלום hello». его кодировка – Unicode. когда я делаю «readfile» и отправляю заголовок:
Content-type: text/plain;charset=utf-8
ивритские символы исчезают. Странная часть заключается в том, что когда я снова открываю файл, я вижу символы на иврите (Unicode поддерживает иврит), а UTF-8 расширяет Unicode, поэтому теоретически мне не нужно делать никакого преобразования. Что мне делать?
Строка «его кодировка [ING] является Unicode» не имеет смысла. Существует много способов, которыми Unicode может быть представлен в текстовом файле (одним из них является UTF-8).
Если вы имеете в виду – он был сохранен в Notepad как Unicode, это означает, что файл находится в UTF-16LE. Отправить соответствующий заголовок:
Content-type: text/plain;charset=utf-16
И это сработает.
Чтобы ответить на вопрос в заголовке, обычно функция iconv()
используется в PHP для преобразования между кодировками. Предупреждение – хотя это может быть недоступно на веб-сервере в размещенной среде.