проблема специальных символов в ubuntu 16.04 [duplicate]

Вот начало решения, которое я сделал: у него есть некоторые ошибки. Я хочу добавить функцию для создания целых каталогов в листы спрайтов.

#!/bin/bash
#Convert animated gif to sprite sheet
#pass in animated gif get out png sprite sheet
convert $1 $1.png
convert `ls *.png` +append $1.png.result
rm *.png
mv $1.png.result $1.png
9
задан 21 January 2014 в 02:07

4 ответа

Это похоже на проблему с кодировкой. К сожалению, PHP нуждается в ручном хранении, когда дело доходит до кодировок, потому что по умолчанию его строки однобайтовые. Если вы создаете имя файла в PHP, utf8_encode() должно быть полезно; обратите внимание, однако, что он предполагает кодирование ISO-8859-1 для ввода.

С другой стороны, если вы используете имя файла, представленное клиентом, возможно, вы можете запросить клиенту кодирование для тебя. Это делается с атрибутом utf8_encode() тега <form> и / или путем установки кодировки страницы, на которой находится форма. Некоторые клиенты могут использовать один или другой, поэтому для достижения наилучших результатов используйте UTF-8 для каждого.

5
ответ дан 18 July 2018 в 10:48

Это похоже на проблему с кодировкой. К сожалению, PHP нуждается в ручном хранении, когда дело доходит до кодировок, потому что по умолчанию его строки однобайтовые. Если вы создаете имя файла в PHP, utf8_encode() должно быть полезно; обратите внимание, однако, что он предполагает кодирование ISO-8859-1 для ввода.

С другой стороны, если вы используете имя файла, представленное клиентом, возможно, вы можете запросить клиенту кодирование для тебя. Это делается с атрибутом utf8_encode() тега <form> и / или путем установки кодировки страницы, на которой находится форма. Некоторые клиенты могут использовать один или другой, поэтому для достижения наилучших результатов используйте UTF-8 для каждого.

5
ответ дан 24 July 2018 в 19:39

По умолчанию Ubuntu использует UTF-8 для имен файлов. Большинство современных Linux-дистрибутивов и многих других операционных систем делают это (Windows / NTFS - это самое известное исключение с UTF-16).

Чтобы исправить файлы с именами в неправильной кодировке, подобной той, которую вы показываете, вы может попытаться использовать nautilus-filename-repairer

sudo apt-get install nautilus-filename-repairer

Вы можете использовать функции PHP iconv для преобразования строк (имена файлов) с одной кодировки в другую. Конечно, это требует, чтобы вы знали, с какой кодировкой они начинаются.

Чтобы правильно кодировать имена файлов с клиента, вы можете попробовать технику, объясненную eswald.

7
ответ дан 18 July 2018 в 10:48

По умолчанию Ubuntu использует UTF-8 для имен файлов. Большинство современных Linux-дистрибутивов и многих других операционных систем делают это (Windows / NTFS - это самое известное исключение с UTF-16).

Чтобы исправить файлы с именами в неправильной кодировке, подобной той, которую вы показываете, вы может попытаться использовать nautilus-filename-repairer

sudo apt-get install nautilus-filename-repairer

Вы можете использовать функции PHP iconv для преобразования строк (имена файлов) с одной кодировки в другую. Конечно, это требует, чтобы вы знали, с какой кодировкой они начинаются.

Чтобы правильно кодировать имена файлов с клиента, вы можете попробовать технику, объясненную eswald.

7
ответ дан 24 July 2018 в 19:39

Другие вопросы по тегам:

Похожие вопросы: