Проблема с кодировкой на сервере.

123 4
M
На сайте с 06.04.2021
Offline
26
557

Здравствуйте.
У меня есть файл, который я сохраняю в UTF-8, а затем переношу на сервер. Файл содержит только стандартные символы ASCII, и только "нормальные", т.е. от 33 до 125, которые можно написать на любой клавиатуре. На сервере он, что ни делай, становится ASCII (как определяет mb_detect_encoding). И в результате - fread не может прочитать какие-то символы (не смог только символ с кодом 60 - "<", но, вероятно, там и с другими может быть проблема). Так вот, проблема в том, что я ни могу найти способ заставить сохраняться UTF-8 на сервере, либо (что предпочтительнее) заставить fread читать всё, что есть, не пропуская символы. Менять кодировку на уровне хостинга через админку - не вариант, поскольку юзер, который будет использовать мою программу, не должен об этом думать. .htaccess использовать тоже не хочется, да он и не помогает.
Что делать?

Евгений Крупченко
На сайте с 27.09.2003
Offline
178
#1
mikuskov :
переношу на сервер

Что это значит? По фтп в текстовом режиме?

Не видя вживую проблему ничего толком не понять.

Но можно попробовать упаковать в архив, забросить на сервер и там распаковать.

M
На сайте с 06.04.2021
Offline
26
#2
Евгений Крупченко #:

Что это значит? По фтп в текстовом режиме?

Не видя вживую проблему ничего толком не понять.

Но можно попробовать упаковать в архив, забросить на сервер и там распаковать.

Да, просто FTP. Архив я не хочу даже и пробовать, но спасибо за идею. Не хочу, поскольку юзер должен по FTP закачать, да и пользоваться. Без бубна. Я всего лишь хочу, чтобы fread читал без проблем любые символы из стандарта ASCII, а он не видит <

SeVlad
На сайте с 03.11.2008
Offline
1609
#3
mikuskov :
Что делать?
Настроить сервер.
mikuskov :
.htaccess использовать тоже не хочется,

Религия не позволяет?

mikuskov :
да он и не помогает.

Либо не правильно делаешь либо.. см п1. И ответ-рекомендацию выше (от Евгений Крупченко).


Делаю хорошие сайты хорошим людям. Предпочтение коммерческим направлениям. Связь со мной через http://wp.me/P3YHjQ-3.
SeVlad
На сайте с 03.11.2008
Offline
1609
#4
mikuskov #:
Архив я не хочу даже и пробовать,
Беда-печаль с фанатиками.
M
На сайте с 06.04.2021
Offline
26
#5
SeVlad #:
Беда-печаль с фанатиками.

Смотрите какая чертовщина:

<?php
$f = fopen(__DIR__ . "/pos.plr", "r");
fseek($f, -20, SEEK_END);
$itog = fread($f, 20);
fclose($f);
echo $itog;
?>


Если содержимое файла pos.plr:
10000000000000000 0 D1<w
то он выдаст: "0000000000000 0 D1"

а если содержимое файла pos.plr:
10000000000000000 0 D1<  (то же самое, но вместо w - пробел на конце),
то он выдаст: "0000000000000 0 D1<"

Почему так?

M
На сайте с 06.04.2021
Offline
26
#6
SeVlad #:
Либо не правильно делаешь либо..

AddCharset utf-8 .plr
AddDefaultCharset off

из этого состоит .htaccess - где тут ошибка?

SeVlad
На сайте с 03.11.2008
Offline
1609
#7
mikuskov #:
из этого состоит .htaccess - где тут ошибка?

Не провоцируй на ответ, который тебе не понравится.

Ликбез: хтацесс - это доп. файл конфигурирования апача. В зависимости от основных настроек апача в доп. конф.файле возможны разные варианты изменения настроек.

Ликбез2: Проделай уже через архив чтобы убедиться кто виноват.


ЗЫ. для вставки кода на форуме есть аж 2е кнопки и соответствующие им хоткеи Alt+S и Alt+5.

Евгений Крупченко
На сайте с 27.09.2003
Offline
178
#8

Просто какая-то каша из информации... ничего не понятно.

Т.е. pos.plr - это и есть ваш файл, который по фтп заливается? Файл состоит из одной этой строчки без перехода на новую?

Попробовал ваш скрипт и .plr файл - все четко работает, пробел на конце рисует во втором случае.






по фтп проверял закидывать (вместо создания прямо на сервере) - байт в байт передается.

Т.е. либо на этапе переброски у вас какой-то нюанс, либо не знаю... попробуйте просто для проверки архивом закинуть.

AddCharset utf-8 .plr  - вообще не имеет смысла т.к. оно влияет лишь на отдачу этого файла апачем клиенту. Вы же читаете php скриптом прямо там (апач лишь php запускает).

M
На сайте с 06.04.2021
Offline
26
#9
SeVlad #:

Не провоцируй на ответ, который тебе не понравится.

Ликбез: хтацесс - это доп. файл конфигурирования апача. В зависимости от основных настроек апача в доп. конф.файле возможны разные варианты изменения настроек.

Ликбез2: Проделай уже через архив чтобы убедиться кто виноват.


ЗЫ. для вставки кода на форуме есть аж 2е кнопки и соответствующие им хоткеи Alt+S и Alt+5.

Спасибо за помощь. Не отвечай мне больше, пожалуйста - мне не нравится твой тон.

M
На сайте с 06.04.2021
Offline
26
#10
Евгений Крупченко #:
Т.е. либо на этапе переброски у вас какой-то нюанс, либо не знаю... попробуйте просто для проверки архивом закинуть.

Евгений, спасибо. Буду пробовать, разбираться.

123 4

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий