Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: File Format

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


 Страниц (2): [1] 2 »   

> Описание: DOS UNIX MAC UNICODE || +-BOM
UNTRUSTED
Отправлено: 30 Марта, 2012 - 13:50:46
Post Id


Частый гость


Покинул форум
Сообщений всего: 255
Дата рег-ции: Март 2012  


Помог: 2 раз(а)




В редакторе есть вот такая тема, выбрать формат файла(В описании перечислены). возник вопрос такой, чем отличается и что лучше использовать? Раньше никогда сильно не задумавался даже над этим стояло себе всегда DOS да и работало.. Но вот любопытство все-таки взяло верх, и гугл опять меня подвелНедовольство, огорчение Кто-что знает? Про BOM я много тоже не знаю, поэтому его вписал тоже в тему,(думаю подходит), слышал про него только, что его лучше не использовать, кроме если кодировка UTF-16 или UTF-32...!
 
 Top
EuGen Администратор
Отправлено: 30 Марта, 2012 - 14:39:43
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




BOM = Byte Order Mark, указание порядка байтов для UTF: Что такое BOM в деталях
UTF - многобайтовая кодировка, под словом "много" можно понимать не только 2 байта (как в UTF-8), но и, например, 4 (тогда это будет UTF-16): про Unicode
Windows/UNIX/Mac формат подразумевают различие в переносе строки. Для Windows это \r\n (возврат каретки и перенос строки), тогда как для UNIX - только \n (перенос строки).


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
UNTRUSTED
Отправлено: 30 Марта, 2012 - 16:01:21
Post Id


Частый гость


Покинул форум
Сообщений всего: 255
Дата рег-ции: Март 2012  


Помог: 2 раз(а)




Т.е. в принципе нет разницы какой использовать win или unix. Ну Mac пролетает сразу.. А вот насчет формата(именно не кодировки а формата) UNICODE(ну хотя такой кодировки и нетуУлыбка) что можете сказать именно про него я читал, а вот по использованию в php,html,js и.т.д? Какие-то преимущества или недостатки. Спасибо!
 
 Top
EuGen Администратор
Отправлено: 30 Марта, 2012 - 16:06:09
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




UNTRUSTED
Преимущества - собственно, многоязычность. Универсальность кодировки. Недостаток - каждый не ASCII-символ кодируется 2 байтами (для UTF-8), то есть, к примеру, кириллица будет вдвое больше по размеру, чем в однобайтовой кодировке (то есть сама страница с кириллицей будет иметь больший размер). В бытие современного интернета с его скоростями, впрочем, это весьма призрачный "недостаток".


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
UNTRUSTED
Отправлено: 30 Марта, 2012 - 16:14:48
Post Id


Частый гость


Покинул форум
Сообщений всего: 255
Дата рег-ции: Март 2012  


Помог: 2 раз(а)




Т.е. если использовать UTF-8, то лучше формат UNICODE ставить, и убирать BOM? Я правильно понял?
 
 Top
EuGen Администратор
Отправлено: 30 Марта, 2012 - 16:19:18
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




UNTRUSTED
Используйте UTF без BOM.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
UNTRUSTED
Отправлено: 30 Марта, 2012 - 16:31:14
Post Id


Частый гость


Покинул форум
Сообщений всего: 255
Дата рег-ции: Март 2012  


Помог: 2 раз(а)




А еще последний вопрос, он к mysql относиться но думаю будет и здесь уместен!
В базе есть сравнение - UTF-8 bin, UTF-8 general ci и UTF-8 unicode ci.
Как я понял bin сравнивает бинарно все и различия в регистре и.т.д, general (default) , с ним все понятно, а вот unicode ci - читал что-то вроде поддерживает там немецкие и.т.д. специфические символы?? Хотя самые специфические китайские поддерживаются насколько я знаю и в general ci?
Разъясните еще вот это немного спасибки.
(Добавление)
Там даже и написано одинакого:
utf8_general_ci Юникод (многоязычный), регистронезависимый
utf8_unicode_ci Юникод (многоязычный), регистронезависимый

ну а бин
utf8_bin Юникод (многоязычный), Двоичный
тут все понятно.
 
 Top
EuGen Администратор
Отправлено: 30 Марта, 2012 - 16:47:04
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Главные отличия:

0. utf8_unicode_ci поддерживает так называемые расширения и лигатуры, например,
немецкая буква ß (U+00DF LETTER SHARP S) (в сортировке рядом с "ss")
буква Œ (U+0152 LATIN CAPITAL LIGATURE OE) (в сортировке рядом с "OE")
utf8_general_ci не поддерживает лигатуры и расширения, он обрезает такие символы и иногда сортировка происходит некорректно.

1. utf8_unicode_ci вцелом "более аккуратный" для скриптов
Например, для кириллического блока - utf8_unicode_ci хорош для всех языков: русский, болгарский, белорусский, македонский, сербский, украинский, тогда как utf8_general_ci подойдет только для русского и болгарского языков (подмножества кириллицы), а символы остальных языков будут представляться и сортироваться некорректно.

Полный набор символов обеих кодировок:
для utf8_general_ci
для utf8_unicode_ci


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
UNTRUSTED
Отправлено: 30 Марта, 2012 - 16:50:42
Post Id


Частый гость


Покинул форум
Сообщений всего: 255
Дата рег-ции: Март 2012  


Помог: 2 раз(а)




Спасибо!

А ещеУлыбка почти у всех эти проблемы с кодировкой этой, лучше сразу узнаю.
Нужно перекодировать абсолютно все файлы в utf-8? и .htaccess и кофиги или только где вывод происходит или куки и headerы ставяться?

(Добавление)
Вот уже пример:
В анси короткий файл:
CODE (htmlphp):
скопировать код в буфер обмена
  1. Order Deny,Allow
  2. Deny from all

В утф(причем создал новый файл и вручную написал)
CODE (htmlphp):
скопировать код в буфер обмена
  1. Order Deny,Allow
Deny from all

Это как я понял символ переноса строки?
Вот из-за таких ляпов потом куки не ставяться! Или перенос вообще не ставить в этом формате?

(Добавление)
Попробовал поменять на DOS,UNIX,MAC - везде этот каракуль исчезает... Только ставлю unicode - появляется? Кстати в редакторе не отображается естественно, вот в блокноте квадратик, и сейчас сообщение редактирую - тоже квадратикУлыбка А в форуме видно html-кодУлыбка

(Отредактировано автором: 30 Марта, 2012 - 17:11:06)

 
 Top
EuGen Администратор
Отправлено: 30 Марта, 2012 - 17:08:51
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




UNTRUSTED
оставьте .htaccess как есть (в случае, если там нет кириллицы), и перекодируйте - если есть. Символ переноса строки имеет код 0x20 (то есть 32), стало быть, является ASCII и потому одинаково будет представляться и в UTF и в однобайтовой кодировке.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
UNTRUSTED
Отправлено: 30 Марта, 2012 - 17:13:38
Post Id


Частый гость


Покинул форум
Сообщений всего: 255
Дата рег-ции: Март 2012  


Помог: 2 раз(а)




EuGen пишет:
является ASCII и потому одинаково будет представляться и в UTF и в однобайтовой кодировке.

А почему тогда он отображается только если поставить формат unicode? Не пойму.. Причем меняешь - он исчезает
 
 Top
EuGen Администратор
Отправлено: 30 Марта, 2012 - 17:15:30
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




UNTRUSTED
Это уже вопрос к редактору файлов, которым Вы пользуетесь. Можете стереть это вручную, хотя бы.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
UNTRUSTED
Отправлено: 30 Марта, 2012 - 17:30:44
Post Id


Частый гость


Покинул форум
Сообщений всего: 255
Дата рег-ции: Март 2012  


Помог: 2 раз(а)




tsWebEditor - редактор!
Еще вопрос? Тут на форуме нашел - http://forum.php.su/topic.php?fo...8&topic=2014
Там говориться что лучше использовать
mysql_query('SET NAMES utf8')
А в мануале -
PHP.NET пишет:

mysql_set_charset =>
Замечание:
Это наиболее предпочитаемый способ для смены кодировки. Использование mysql_query() с запросом SET NAMES .. не рекомендуется.

Что здесь можете посоветовать?

EuGen пишет:
стереть это вручную

Ну это в одном файле один переносУлыбка а в остальных будет тысяча переносов(если только потом все файлы на реплейсере прогнать..)

(Отредактировано автором: 30 Марта, 2012 - 17:35:34)

 
 Top
EuGen Администратор
Отправлено: 30 Марта, 2012 - 17:35:54
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




phpfaq пишет:
Примечания
Забавно, но запрос SET NAMES не изменяет кодировку, использующуюся функцией mysql_real_escape_string. А только ради кодировки эта функция и была придумана! Для того, чтобы mysql_real_escape_string работала как задумано, и нужно менять кодировку с помщью mysql_set_charset(), а не запроса SET NAMES. Впрочем, для нас это не так уж важно, поскольку для utа8 и всех однобайтных кодировок никаких негативных последствий от неправильной кодировки не будет. Не говоря уже о том, что давно пора отказаться от прослешивания вообще и использовать родные подготовленные выражения.
Если не хочется в каждом скрипте задавать кодировку, можно установить кодировку для всего сервера по умолчанию. Для этого в my.ini в секции [mysqld] надо написать:
init-connect='SET NAMES utf8'
Таким образом дефолтная кодировка будет изменена с latin1 на указанную.
Разумеется, в скриптах ее можно будет менять на любую другую.

- однако, если честно, я всегда настраиваю серер MySQL так, чтобы такой трудности не возникало, и потому в моем случае SET NAMES вполне подходит.
Стоит еще учесть, что функция mysql_set_charset требует MySQL 5.0.7 и выше.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
UNTRUSTED
Отправлено: 30 Марта, 2012 - 17:58:45
Post Id


Частый гость


Покинул форум
Сообщений всего: 255
Дата рег-ции: Март 2012  


Помог: 2 раз(а)




Версия сервера: 5.1.61-log
(Добавление)
А что скажете про кодировку UTF-16? Нашел прогу, она перекодировала все файлы в Юникод.. Смотрю занимать прям серьезно больше стало. Скинул в редактор кодировка UTF-16(Little Endian)
(Добавление)
Прога причем в 1998г. написанаУлыбка автор Виктор степанов.. Называеться CODER может знаете?
 
 Top
Страниц (2): [1] 2 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Вопросы новичков »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB