Автор Тема: Help me!  (Прочитано 6643 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Anticlone

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 33
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Help me!
« : 29 Июля 2006, 03:36:04 »
Делаю свой первый сайт. Сознательно без редакторов, все прописываю в ручную в блокноте.
Во избежание каких-либо проблем с изображением языка в будущем, хочу понять, правильно ли будет, сохранив html-файл в ANSI, прописать одновременно в вручную кодировку Windows-1251 (как это проделывает автоматически редактор) следующим образом:




Верные ли эти строки, если я прописываю кодировку Windows-1251 вручную?

Насколько мне объяснили, чтобы читался русский текст, язык необходимо задавать. Но, вот как? И можно ли это прописать вручную как показано выше - я не знаю. Если это не верно, то буду крайне благодарен за показанное правильное решение.

Оффлайн html_coder

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 427
  • +0/-0
  • 0
    • Просмотр профиля
Help me!
« Ответ #1 : 29 Июля 2006, 12:26:00 »
В первой строче кавычка одна лишняя, жирным её выделил...

Цитировать
Anticlone:
"; charset=windows-1251">


Ну мне кажется с блокнтом ты погорячился, не призываю конечно использовать визуальные редакторы типа DW, но блокнот это по-моему тоже сильный изврат...

Надо выбрать нормальный редактор, чтобы подсвечивал разметку иначе мучение какое-то )))))

Оффлайн Anticlone

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 33
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Help me!
« Ответ #2 : 29 Июля 2006, 23:25:01 »
Огромное спасибо за кавычку. Как Вы думаете, прописка данной строки, определящей подобным образом код windows-1251 и одновременное при этом сохранение html-файлов в ANSI - приемлимый дуэт, который обеспечил бы нормальную видимость сайта в сети? Так принято делать в общепринятой практике сайтостроительства?

Да, насчет блокнота - это, конечно, так. Но, признаться, я пошел на это сознательно. Хотелось, все понять самому, а потом уже использовать облегчающие жизнь редакторы. К стати, какие бы Вы посоветовали? И что Вы думаете про NAMO?

Оффлайн html_coder

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 427
  • +0/-0
  • 0
    • Просмотр профиля
Help me!
« Ответ #3 : 30 Июля 2006, 18:29:44 »
Цитировать
Anticlone:
К стати, какие бы Вы посоветовали? И что Вы думаете про NAMO?


Ничего не думаю, просто не слышал про этот редактор.

Вот можно почитать например эту тему
http://xpoint.ru/forums/programming/javascript/misc/thread/37257.xhtml

Сейчас сам пользуюсь вот этим jedit, до этого HomeSite и EditPlus, но вообще это дело индивидуальное как мне кажеться, кому что больше нравится!

Оффлайн Greg

  • пинёг
  • Ветеран
  • *****
  • Сообщений: 618
  • +0/-0
  • 2
    • Просмотр профиля
    • http://www.bsfera.ru
Help me!
« Ответ #4 : 31 Июля 2006, 08:15:12 »
я так dw и пользуюсь, только сижу постоянно в окне кода, а не в визуальном. в визуальное очень редко заглядываю.

чем мне dw нравиться так это тем, что поставляет тэги, никакого лишнего кода (при визульном редактировании) сам же создает стили, легко и широко настраивается... в общем ничего лучше пока не видел, хотя юзал многое в т.ч. и notepad ;)
Пространные размышления об ИТ и все что вокруг

Оффлайн CGVictor

  • теперь местный
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2511
  • +0/-0
  • 2
    • Просмотр профиля
    • http://cg.net.ru
Help me!
« Ответ #5 : 31 Июля 2006, 16:02:58 »
Anticlone
"Дуэт" здесь ни при чем. ANSI не предполагает использование CP1251, как и наоборот. Поэтому нужно прописывать encoding.
Или используй UTF8.
LJ: Backslashed life (rss)

Оффлайн Anticlone

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 33
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Help me!
« Ответ #6 : 31 Июля 2006, 23:58:40 »
А что такое "encoding" в сайтостроительстве? И как им пользоваться?

И, если я Вас правильно понял, если я сохраняю файл в ANSI и необходимо прописать Windows-1251, то нужно использовать этот самый encoding. Если же я его не использую, то необходимо сохранять в UTF8?

Как на Ваш взгляд, если я собираю сайт, где превалирует русский язык, и лишь изредко - английский, то какую комбинацию вообще лучше подобрать так, чтобы и на других браузерах нормально появлялся русский шрифт? Сохранять в ANSI или в UTF8, прописывать ли при этом Windows-1251 или использовать что-то другое еще? Собственно, в этом вся и закавырка - я не знаю, что именно предпринять, чтобы нормально и на всех браузерах мой сайт без проблем показывал русские шрифты. Как и в чем сохранять? И какова вообще в подобных случаях общепринятая практика сайтостроительства? Мне очень нужен сйчас практический совет: в какой кодировке сохранять файлы и какой язык и каким образом прописывать.

Заранее огромное спасибо. И вообще всем, кто откликнется!
« Последнее редактирование: 01 Августа 2006, 00:04:02 от Anticlone »

Оффлайн CGVictor

  • теперь местный
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2511
  • +0/-0
  • 2
    • Просмотр профиля
    • http://cg.net.ru
Help me!
« Ответ #7 : 01 Августа 2006, 11:08:58 »
Anticlone
[off]Э-эх... ну ладно, все когда-то учились.[/off]

Encoding в сайтостроительстве (равно как и в английском языке) есть кодировка.

ANSI говорит лишь о том, что используется однобайтовое кодирование символов. За большее он не отвечает.
Meta-tag encoding c charset=windows-1251 говорит браузеру, что "старшие" 128 символов кодовой таблицы в переданном файле надо отображать соответственно кодировке CP1251.

Отображаться будет нормально у тех, у кого стоит подержка кириллицы в системе. Это примерно 70% от общего числа пользователей сети и 100% российских юзеров.

UTF8 использует два байта для кодирования символов (иногда больше, но не суть важно), поэтому способен уже сам по себе отобразить всю нужную кириллицу. А также латиницу, древнегреческое письмо и катакану с хироганой. Его имеет смысл использовать, когда проект действительно многоязычный.

Для твоих же задач ANSI+cp1251 вполне подойдет.
LJ: Backslashed life (rss)

Оффлайн Anticlone

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 33
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Help me!
« Ответ #8 : 02 Августа 2006, 00:17:42 »
CGVictor, понимаю конечно, что могу показаться абсолютным неучем в IT-технологиях, но что такое "ср1251"? Это то же самое, что и Windows-1251? Я впервые сталкиваюсь с понятием "ср"...

Оффлайн CGVictor

  • теперь местный
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2511
  • +0/-0
  • 2
    • Просмотр профиля
    • http://cg.net.ru
Help me!
« Ответ #9 : 02 Августа 2006, 11:57:33 »
Anticlone
Да, windows-1251 это всего лишь название для кодировки cp1251 ("ANSI CodePage 1251").
LJ: Backslashed life (rss)

Оффлайн Anticlone

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 33
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Help me!
« Ответ #10 : 03 Августа 2006, 10:50:45 »
Как же, приятно иметь дело с профессионалами...  Вот что значит основательность!

Ок, теперь попробую резюмировать полученную информацию.

Итак, для того, чтобы обеспечить видимость одновременно как русской кирилицы, так и английских шрифтов я должен:

1) Сохранить все html-файлы в кодировке ANSI.

2) Прописать в следующие две строки:




Верно? Или может еще какие-то нюансы не учтены?
« Последнее редактирование: 03 Августа 2006, 11:55:21 от Anticlone »

Оффлайн CGVictor

  • теперь местный
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2511
  • +0/-0
  • 2
    • Просмотр профиля
    • http://cg.net.ru
Help me!
« Ответ #11 : 03 Августа 2006, 16:30:34 »
Anticlone
Да, всё верно.
LJ: Backslashed life (rss)

Оффлайн Anticlone

  • Завсегдатай
  • Новичок
  • *
  • Сообщений: 33
  • +0/-0
  • 0
    • Просмотр профиля
    • http://
Help me!
« Ответ #12 : 03 Августа 2006, 19:38:01 »
CGVictor, искренне благодарю.

P.S. К стати, если я эти две строчки -




- пропишу в вручную  (в блокноте) ничего не страшного, надеюсь, не будет? Так можно делать?

Оффлайн alepar

  • Заглянувший
  • Новичок
  • *
  • Сообщений: 1
  • +0/-0
  • 0
    • Просмотр профиля
Help me!
« Ответ #13 : 04 Августа 2006, 01:59:16 »
Хотя и порядок действий автором треда понят, тем не менее, постараюсь пояснить терминологию, которую тут безбожно переврали, и откуда вообще растут уши у этих кодировок.
Возможно кое где я буду опускаться до совсем прописных истин - это не потому, что я принимаю тут кого-то за дурачка. Я делаю это для, так сказать, складности повествования.

Для начала проясним терминологию.
Выражение "кодировка ANSI" бесcмысленно. ANSI - никогда не был кодировкой. Расшифровывается это сокращение как "American National Standards Institute". Как видно из названия, это организация, которая в свое время выпускала стандарты.

Один из ее стандартов - ASCII (расшифровывается American Standard Code for Information Interchange).
В этом стандарте определены коды следующих 95 печатных символов
Цитировать
!"#$%&\'()*+,-./0123456789:;<=>?
@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_
`abcdefghijklmnopqrstuvwxyz{|}~

Еще в нем определены коды 33 управляющих символов, но об этом в другой раз.

Как видно выше, в стандарте ASCII не определены коды для русских символов.
Поэтому сейчас существует несколько других более поздних стандартов, определяющих коды для русских символов.
Например, это Windows-1251(или иногда CP1251), ISO-8859-5, KOI8-R, CP866(или иногда DOS кодировка).
Эти кодировки - расширение кодировки ASCII. То есть в любой из этих кодировок, английские буквы кодируются одинаковыми числами, определенными кодировкой ASCII. А вот коды для русских букв различаются.

Возможно, вы спросите, а зачем такое множество кодировок для разных языков? Почему бы не ввести одну кодировку для всех языков, и не мучаться?
Поясню. В кодировке ASCII каждый символ кодировался одним байтом. В один байт может влезть одно число от 0 до 255. Следовательно в кодировке ASCII мы можем иметь не более 256 различных символов. Что, разумеется, недостаточно для всех символов всех алфавитов мира.
Тем более, что больше половины уже занято стандартом ASCII.
Поэтому и было придумано множество кодировок - каждая из которых по своему определяет оставшуюся сотню символов.

Кроме того, сейчас достаточно активно распространяется кодировка UTF (бывает UTF-8, UTF-16, об их различиях в другой раз), которая стоит особняком. В ней нарушается тот принцип, что каждый символ кодируется одним байтом.
В кодировке UTF на кодирование одного символа может быть использовано до 4-х байт. А в 4 байта уже "влезает" одно число от 0 до 4294967296.
Это позволяет определить единый стандарт для всех символов всех алфавитов мира.
Если на вашей странице используется больше одного, отличного от английского, языка - то UTF ваш единственный выход.

Это теория. Теперь немного о практике.
Обычный текстовый файл *.txt хранится как последовательность байт. Каждый байт - это символ. Информация о том, какая у него кодировка, нигде не хранится - ей просто негде поместиться. И редактор вообще говоря не знает, какую кодировку следует использовать при открытии txt файла.
Как же редактор определяет какой кодировкой следует пользоваться? Ответ прост - каждый редактор делает по-своему.

Например Блокнот всегда открывает txt файлы с предположением, что они в кодировке Windows-1251(на самом деле блокнот еще "понимает" кодировку UTF, но об этом в другой раз =). Что будет, если там используется другая кодировка? На экране будут отображаться т.н. "крякозяблики". Более того, Блокнот всегда сохраняет файлы в кодировке Windows-1251(опять же за исключением случаев, когда сохраняется файл, который был изначально открыт как UTF файл).

Разумеется, существуют другие редакторы, в которых пользователь может явно задать кодировку открываемого файла.
Кроме того, существуют редакторы, которые, используя некие эвристические алгоритмы, частенько могут сами "догадаться", в какой же кодировке был сохранен открываемый файл. Таким редактором является программа под названием "Штирлиц".

Теперь перейдем к браузерам. Html файлы, очевидно, хранятся на диске ровно так же как и txt файлы - последовательностью байтов, где каждый байт - это символ.
Когда кто то со стороны из интернета загружает сделанную вами в блокноте html страницу, браузер этого человека получает на вход такую же последовательность символов, которую сохранил на жесткий диск ваш Блокнот.
Если бы браузер знал, что страница сохранялась Блокнотом, он бы знал, что для отображения следует использовать кодировку Windows-1251. Но браузер пока никак не может этого знать, ибо эта информация, очевидно, нигде не сохранена.
Для того, чтобы браузер мог догадаться о том, в какой кодировке был сохранен полученный им файл, и был придуман тег, который здесь так широко обсуждается.
Так как во всех кодировках английские символы кодируются одинаково, то браузер всегда, вне зависимости от кодировки может "прочитать" этот тег и название кодировки, которое там написано.
Таким образом, браузер понимает в какой кодировке сохранена загруженная страница, и использует ее для отображения.

Суммируя все вышесказанное:
когда вы сохраняете html файл Блокнотом, он будет сохранен в кодировке Windows-1251, и, как следствие, для правильной работы браузера файл должен содержать вышеприведенную строчку
Цитировать


Если вы будете сохранять html файл другим редактором, который, вы знаете, сохраняет файлы в другой кодировке, то и название кодировки в вышеприведенной строчке должно быть заменено на соответсвующее.

Теперь, если я все понятно объяснил, и вы потрудились переварить все вышенаписанное, то вы сами сможете ответить на свой же вопрос, заданный в посте выше.
Более того, теперь у вас вообще не должно возникать подобных вопросов.

Оффлайн CGVictor

  • теперь местный
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 2511
  • +0/-0
  • 2
    • Просмотр профиля
    • http://cg.net.ru
Help me!
« Ответ #14 : 04 Августа 2006, 10:19:42 »
[off]alepar
Молодой человек, я конечно понимаю ваше желание растолковать и объяснить, но в вашей статье неточностей и допущений еще больше.[/off]

Короче. Кому после этого еще хочется разобраться - лезем на ВП и читаем:
http://en.wikipedia.org/wiki/Character_encoding
http://en.wikipedia.org/wiki/UTF
http://en.wikipedia.org/wiki/CP1251

Тема закрыта.
LJ: Backslashed life (rss)

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28