Преобразование кодировки ASCII TO UTF-8

Как конвертировать ASCII-кодировку в UTF8 в PHP

ASCII является подмножеством UTF-8, поэтому, если документ является ASCII, то он уже является UTF-8.

Если вы точно знаете, что ваша текущая кодировка является чистой ASCII, вам не нужно ничего делать, потому что ASCII уже является допустимым UTF-8.

Но если вы все еще хотите конвертировать, просто чтобы убедиться, что его UTF-8, вы можете использовать iconv

$string = iconv('ASCII', 'UTF-8//IGNORE', $string); 

IGNORE будет отбрасывать любые недопустимые символы только в том случае, если некоторые из них недействительны ASCII.

Использовать utf8_encode ()

Страница «Человек» можно найти здесь http://php.net/manual/en/function.utf8-encode.php

Также прочитайте эту статью от Joel on Software. Это дает отличное объяснение, что такое Unicode и как он работает. http://www.joelonsoftware.com/articles/Unicode.html

«ASCII – это подмножество UTF-8, поэтому …» – так что UTF-8 – это набор ? 🙂

Другими словами: любая строковая сборка с code points от x00 до x7F имеет неразличимые представления (байтовые последовательности) в ASCII и UTF-8. Преобразование такой строки бессмысленно.

Используйте mb_convert_encoding для преобразования ASCII в UTF-8. Больше информации здесь

 $string = "chárêctërs"; print(mb_detect_encoding ($string)); $string = mb_convert_encoding($string, "UTF-8"); print(mb_detect_encoding ($string)); 

Использование iconv выглядит как лучшее решение, но в моем случае у меня есть уведомление, которое формирует эту функцию: «Обнаружен незаконный символ в строке ввода в» (без igonore). Я использую 2 функции для управления строками ASCII, преобразовывая их в массив кода ASCII и затем сериализуя:

 public static function ToAscii($string) { $strlen = strlen($string); $charCode = array(); for ($i = 0; $i < $strlen; $i++) { $charCode[] = ord(substr($string, $i, 1)); } $result = json_encode($charCode); return $result; } public static function fromAscii($string) { $charCode = json_decode($string); $result = ''; foreach ($charCode as $code) { $result .= chr($code); }; return $result; }