Правила     Закладки     Карма    Календарь    Журналы    Помощь    Поиск    PDA    Чат   
        СМС-ки
   
Пейджер выключен!
Страницы: (2) [1] 2  ( Перейти к первому непрочитанному сообщению )  
Фильтр авторов:    показать 
  скрыть
  Ответ в темуСоздание новой темыСоздание опроса

> PHP не отображает символы, примерно такие ✔
Эли4ка  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Богиня-девственница
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 3228
Пользователь №: 27007
На форуме: 6 лет, 2 месяца, 4 дня
Карма: 33

Не пью :
24 года, 5 месяцев, 8 дней


Здравствуйте,дорогие форумчане!Возникла проблема,которую не знаю как решить.Есть простой скрипт,который просматривает содержимое каталога,и выводит то,что там есть.Так вот если в файле есть ✔ Ⓙ ✡ и другие крсивые спецсимволы,то скрипт вместо них выводит знак вопрос ?Из-за чего это может быть,и как решить данную проблему?
Спасибо.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Миша  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 2637
Пользователь №: 37963
На форуме: 3 года, 9 месяцев, 17 дней
Карма: 29




Эли4ка в какой кодировке файл? Такие спецсимволы из Юникода (англ. Unicode).

Что будет если именно этот файл запросить с сервера?


--------------------
Принимаю заказы, писать в ЛС
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Эли4ка  
 ۩  [x] Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Богиня-девственница
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 3228
Пользователь №: 27007
На форуме: 6 лет, 2 месяца, 4 дня
Карма: 33

Не пью :
24 года, 5 месяцев, 8 дней


вот код

function dirArray($dir) {
if ($dh = opendir($dir)) {
while (($file = readdir($dh)) !== false) {
if ($file[0] != ".") {
if(is_dir($dir . $file)) {
dirArray($dir . $file . "/");
// echo $dir. $file . "/<br>";
}
else {
$text=mb_convert_encoding($dir . $file, "UTF-8","Windows-1251");
echo $text ."<br>";
}
}
}

closedir($dh);
}
}



echo dirArray($dir);

Код пока пробный
Цитата
в какой кодировке файл

Это музыкальный файл.У него имя с спецсимволами.примерно такими(но их больше):
Ꝋ ꝋ ︷ ︸ ︹ ︺ ︻ ︼ ︽ ︾ ︿ ﹀ ﹁ ﹂ ﹃ ﹄ ﹅ ﹆ ﹇ ﹈ ﹉ ﹊ ﹋ ﹌ ︗ ︘ ︙ ︠ ︡ ︢ ︣ ︵ ︶
ㅏ ㅐ ㅑ ㅒ ㅓ ㅔ ㅕ ㅖ ㅗ ㅘ ㅙ ㅚ ㅛ ㅜ ㅝ ㅞ ㅟ ㅠ ㅡ ㅢ ㇀
Цитата
Что будет если именно этот файл запросить с сервера?

как понять? :huh:
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Миша  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 2637
Пользователь №: 37963
На форуме: 3 года, 9 месяцев, 17 дней
Карма: 29




Цитата (Эли4ка @ 11.09.2016 - 10:22)
Цитата
Что будет если именно этот файл запросить с сервера?

как понять? huh.gif

Re: Есть простой скрипт,который просматривает содержимое каталога,и выводит то,что там есть.

Я так понял этот файл проходит через php перед тем как отдать серверу. Вот и говорю, если этот файл запросить с сервера без посредника ))


--------------------
Принимаю заказы, писать в ЛС
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Эли4ка  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Богиня-девственница
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 3228
Пользователь №: 27007
На форуме: 6 лет, 2 месяца, 4 дня
Карма: 33

Не пью :
24 года, 5 месяцев, 8 дней


без посредника нормально,и даже если строчку с именем файла прописать в срипте выведет нормально,а если через код,что я дала выше,то есть через функции эти символы заменяются на знак вопроса.видимо функции PHP не умеют с ними работать,в отличии от строк?
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Миша  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 2637
Пользователь №: 37963
На форуме: 3 года, 9 месяцев, 17 дней
Карма: 29




Значит косяк происходит не с содержимым этого файла, а с его именем? Попробуй так:

else {
// $text=mb_convert_encoding($dir . $file, "UTF-8","Windows-1251");
echo $file;
}


--------------------
Принимаю заказы, писать в ЛС
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Эли4ка  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Богиня-девственница
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 3228
Пользователь №: 27007
На форуме: 6 лет, 2 месяца, 4 дня
Карма: 33

Не пью :
24 года, 5 месяцев, 8 дней


Медведь,все то же самое.Скорее всего функция открытия каталога не умеет работать со всем юникодом
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Миша  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: ★ЛжеЭксперт★
Завсегдатай форума
Сообщений: 2637
Пользователь №: 37963
На форуме: 3 года, 9 месяцев, 17 дней
Карма: 29






--------------------
Принимаю заказы, писать в ЛС
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Эли4ка  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Богиня-девственница
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 3228
Пользователь №: 27007
На форуме: 6 лет, 2 месяца, 4 дня
Карма: 33

Не пью :
24 года, 5 месяцев, 8 дней


Нашла
"PHP файловая оболочка для Windows принимает название файла в кодировке ISO-8859-1, это латинские буквы и некоторые символы. Может назвать файлы цифрами 1.txt, 2.txt и хранить названия в каждом файле в первой строчке, или в отдельном файле как список, или в базе. "
вот все символы http://www.unicode.org/Public/MAPPINGS/ISO8859/8859-1.TXT
кажется проблема решена
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Эли4ка  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Богиня-девственница
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 3228
Пользователь №: 27007
На форуме: 6 лет, 2 месяца, 4 дня
Карма: 33

Не пью :
24 года, 5 месяцев, 8 дней


используйте iconv()
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Эли4ка  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Богиня-девственница
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 3228
Пользователь №: 27007
На форуме: 6 лет, 2 месяца, 4 дня
Карма: 33

Не пью :
24 года, 5 месяцев, 8 дней


на линуксе все будет работать нормально.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Эли4ка  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Богиня-девственница
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 3228
Пользователь №: 27007
На форуме: 6 лет, 2 месяца, 4 дня
Карма: 33

Не пью :
24 года, 5 месяцев, 8 дней


ISO-8859-1 — кодировка по умолчанию в большинстве современных браузеров.

Первые 128 символов ISO-8859-1 закодированы так же, как и в ASCII (прописные и строчные латинские буквы, цифры от 1 до 9 и некоторые другие символы).
Коды от 160 до 255 содержат символы, используемые в западно-европейских странах и часто используемые спецсимволы.
Коды символов используются для отображения зарезервированных символов или символов, которые сложно ввести с клавиатуры.
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
killer8080  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 8925
Пользователь №: 26630
На форуме: 6 лет, 2 месяца, 26 дней
Карма: 603




Цитата (Эли4ка @ 11.09.2016 - 10:29)
без посредника нормально,и даже если строчку с именем файла прописать в срипте выведет нормально,а если через код,что я дала выше,то есть через функции эти символы заменяются на знак вопроса.видимо функции PHP не умеют с ними работать,в отличии от строк?

Цитата (Эли4ка @ 11.09.2016 - 10:22)
                $text=mb_convert_encoding($dir . $file, "UTF-8","Windows-1251");

Это естественно, PHP ни в чем не виноват. Ты используешь символы из расширенной таблицы юникода, в 1251 этих символов нет, конвертация их не возможна. Используй utf-8 и не будет проблем.



Спустя 1 минута, 34 секунды killer8080 написал(а):
Цитата (Эли4ка @ 11.09.2016 - 11:09)
ISO-8859-1

а кириллица тебе не нужна? Зачем тебе однобайтовые кодировки?
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
Эли4ка  
 ۩  Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Богиня-девственница
******

Профиль
Группа: Форумчанин
Завсегдатай форума
Сообщений: 3228
Пользователь №: 27007
На форуме: 6 лет, 2 месяца, 4 дня
Карма: 33

Не пью :
24 года, 5 месяцев, 8 дней


Цитата
Используй utf-8 и не будет проблем.

killer8080,
readdir($dh))

не может открывать в юникоде
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
killer8080  
Дата
Цитировать сообщение

Пользователя сейчас нет на форуме



Здесь живет
******

Профиль
Группа: Эксперт
Группа переписки
Сообщений: 8925
Пользователь №: 26630
На форуме: 6 лет, 2 месяца, 26 дней
Карма: 603




Цитата (Эли4ка @ 11.09.2016 - 11:15)
killer8080,
readdir($dh))

не может открывать в юникоде

кто тебе такую глупость сказал?
PMПисьмо на e-mail пользователю
    0   Для быстрого поиска похожих сообщений выделите 1-2 слова в тексте и нажмите сюда Для быстрой цитаты из этого сообщения выделите текст и нажмите сюда
  Быстрый ответ
Информация о Госте
Введите Ваше имя
Кнопки кодов
Для вставки цитаты, выделите нужный текст и
НАЖМИТЕ СЮДА
Введите сообщение
Смайлики
:huh:  :o  ;) 
:P  :D  :lol: 
B)  :rolleyes:  <_< 
:)  :angry:  :( 
:unsure:  :blink:  :ph34r: 
     
Показать всё

Опции сообщения  Включить смайлики?
 Включить подпись?
 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:

Опции темыСтраницы: (2) [1] 2  Ответ в темуСоздание новой темыСоздание опроса