Проблема 3х языков
#1
Отправлено 30 августа 2007 - 20:38
Может быть я чего-то не знаю, но с этой проблемой сталкиваюсь не впервые. Как задача про волка, зайца и капусту прямо - что-то одно постоянно не работает.
Кто-то знает как решить проблему? Какие выбрать кодировки, применить методы?
Заранее благодарен за опыт!!!
#2
Отправлено 30 августа 2007 - 20:49
Вы либо способны перелопатить тонны информации и отсеять лишнее, либо программистом не будете. ©Psih
Не вазелин, а бизнес-гель ©Avagraen
#6
Отправлено 30 августа 2007 - 23:54
Потому, что:почему-то когда я ставлю в кодировку браузера утф-8, то русский шрифт отображается квадратами на странице
1) Браузер должен знать, что текст ему передаётся в кодировке UTF8 (Header: Content-type: text/html; charset=utf-8) И указать непосредственно в блоке "head" html документа.
2) Передаваемый текст собственно, тоже должен быть в UTF8 (храни его в базе или где он там у тебя хранится в UTF8, пиши скрипты в UTF8, делай все страницы сайта в UTF8 - никогда не мешай на 1м сайте разные кодировки, пусть всё будет в УТФ8) если надо перекодировать из одной кодировки в другую, то юзай функцию iconv() и убедись, что одноимённое расширение загружено в PHP
Удачи
#7
Отправлено 31 августа 2007 - 00:13
или mb_string если нет первого...iconv
Вы либо способны перелопатить тонны информации и отсеять лишнее, либо программистом не будете. ©Psih
Не вазелин, а бизнес-гель ©Avagraen
#8
Отправлено 31 августа 2007 - 10:06
\uXXXX где Х-ы это код символа в уникоде ... и будет вам счатье.
И кодировка страницы при этом побарабану!
Верю в смерть после жизни, любовь после секса и в крем после бритья ...
#10
Отправлено 31 августа 2007 - 11:09
При чем тут дримвивер и кодировка файлов ... даже если ты поставишь он афтоматом не переведет в двубайтную нотацию ...
И даже если ты сделаешь Unicode без BOM файлы ... ты всё равно не сможешь отобразить разные кодировки на бравзере.
Верю в смерть после жизни, любовь после секса и в крем после бритья ...
#12
Отправлено 31 августа 2007 - 14:03
Ну так вот люди в мире разные, системы разные и как следвие эти системы используют разные кодовые таблицы ... вот из-за этого и есть разные кодировки на сайте.
ЗЫ! Надеюсь я правильно понял смысл написаного?
Тфу ... вопроса
Верю в смерть после жизни, любовь после секса и в крем после бритья ...
#13
Отправлено 31 августа 2007 - 14:38
На форуме Оперы был ? (один UTF-8 и никаких проблем с языком, от китайского до Эстонского все на одной странице могут встречаться, и в одном мыле посылаться)Ну так вот люди в мире разные, системы разные и как следвие эти системы используют разные кодовые таблицы ... вот из-за этого и есть разные кодировки на сайте.
Короче говоря или BlackIce прав или я тоже отстал от тенденций...
Есть ещё выход, посылать письма (как я понял именно о них речь) в виде HTML где тексты кодировались бы как
ˬˬˬˬˬ
И тогда (хотя это скорее "костыль" а не решение) при любой кодировке эти символы будут отображаться ИМЕННО так как надо даже если браузер ошибётся и поставит не ту кодировку
Сообщение изменено: Vladson (31 августа 2007 - 14:39 )
Вы либо способны перелопатить тонны информации и отсеять лишнее, либо программистом не будете. ©Psih
Не вазелин, а бизнес-гель ©Avagraen
#15
Отправлено 31 августа 2007 - 15:03
Не бывает правил без исключений, но по статистике в 99% теория не соответствует не потому что она исключение а по причине не грамотной реализации.Теория не всегда соответвует практике.
Делал и не раз.Ну попробуйте сделать то о Чем вы гооврите.
И заканчивай детский сад, то что ты на меня обиделся и считаешь что я идиот (хотя я считаю что не на что было обижаться) вовсе не значит что я нифига не соображаю в программировании. (даже если я и в правду идиот)
Сообщение изменено: Vladson (31 августа 2007 - 15:06 )
Вы либо способны перелопатить тонны информации и отсеять лишнее, либо программистом не будете. ©Psih
Не вазелин, а бизнес-гель ©Avagraen
#16
Отправлено 31 августа 2007 - 15:15
Я вообще твой ник тока сегодня заметил, когда ты начал на меня пипиську дрочить ... так что это еще вопрос кто на кого взъелся ... да и тут тема не о том.
ЗЫ! По-теме, я говорю так как лучше сделать ... то есть явно указывать Unicode символы кодами. Это заложено в стандарт HTML и это 100% будет работать. А относительно перекодировки файлов в UTF8, то я не раз сталкивался с неправильным отображением мультибайтных символов.
Верю в смерть после жизни, любовь после секса и в крем после бритья ...
#17
Отправлено 31 августа 2007 - 15:20
Но это не позволяет отправлять text/plain письмаЭто заложено в стандарт HTML и это 100% будет работать.
Глюки были древних почтовых клиентов и бразуеров, сейчас с этим проблем нет НИГДЕ (только если криво реализовать конвертирование и пересылку)А относительно перекодировки файлов в UTF8, то я не раз сталкивался с неправильным отображением мультибайтных символов.
Сообщение изменено: Vladson (31 августа 2007 - 15:24 )
Вы либо способны перелопатить тонны информации и отсеять лишнее, либо программистом не будете. ©Psih
Не вазелин, а бизнес-гель ©Avagraen
#18
Отправлено 31 августа 2007 - 15:24
Поддерживаю. Кстати, не все почтовики (ВЕБ интерфейсы и почтовые программы) поддерживают UTF8, в отличие от браузеров, которые всегда правильно отобразят нужные коды. Но я бы всё равно работал с мультиязычным текстом в кодировке UTF8ЗЫ! По-теме, я говорю так как лучше сделать ... то есть явно указывать Unicode символы кодами. Это заложено в стандарт HTML и это 100% будет работать. А относительно перекодировки файлов в UTF8, то я не раз сталкивался с неправильным отображением мультибайтных символов.
Если слать письма в UTF8, не забывайте вручную указывать в заголовках тип передаваемой информации и её кодировку, а то почтовики могут неправильно отобразить ваше письмо!
#19
Отправлено 31 августа 2007 - 15:28
Вот тока я не заметил того, что я как-то унизил твоё достоинство или чего либо другое. Если так то извини! Бог видит, я не задавался целью как либо принизить или оскорбить тебя и всё мои посты были напрвлены в русло темы обсуждаемой в том или ином форуме и никак против личности.Вот про сегодня я и говорю
Надо быть проще.
ЗЫ! Я высказал своё мнение по-поводу решения проблемы ... а уже ваше дело как его интерпретировать.
ЗЗЫ! относительно плаин текста ...то его можно писать в соответвующей кодовой странице соответствуещего языка ... как делают это все "белые" люди. Тут, в теме, речь совсем о другом ... как отобразить символы из трех различных кодовых таблиц на одной HTML странице. На что я дал короткий и абсолютно исчерпывающий ответ, который вполной мере соответвует HTML стандарту.
Сообщение изменено: CyBurglar (31 августа 2007 - 15:29 )
Верю в смерть после жизни, любовь после секса и в крем после бритья ...
#20
Отправлено 31 августа 2007 - 15:30
Я считаю это не решением а временным патчем, и считаю что в перспективе надо переходить просто на UTFкак отобразить символы из трех различных кодовых таблиц на одной HTML странице.
Вы либо способны перелопатить тонны информации и отсеять лишнее, либо программистом не будете. ©Psih
Не вазелин, а бизнес-гель ©Avagraen
#21
Отправлено 31 августа 2007 - 15:34
Не, ну я за мир во всем мире.
Верю в смерть после жизни, любовь после секса и в крем после бритья ...
#22
Отправлено 31 августа 2007 - 15:38
Поддерживают ВСЕ (по крайней мере последние лет 5-6, последний раз я видел проблемы в Win9x) просто если не указать кодировку в заголовке письма то они само собой не все смогут определить какая кодировка (автоматика не везде стоит, от сюда и миф о глюках, который на самом деле продукт кривой реализации)Кстати, не все почтовики (ВЕБ интерфейсы и почтовые программы) поддерживают UTF8
твой вариант подошёл бы как патчпроект размером в 10-20 Мб чистого кода + 3-4 Гб данных.
Но если
По этому если писать с нуля то сразу в UTFЗадача такая: сделать скрипт
Надо стараться отходить от методов наших дедов и стараться делать качественный софт
Вы либо способны перелопатить тонны информации и отсеять лишнее, либо программистом не будете. ©Psih
Не вазелин, а бизнес-гель ©Avagraen
#23
Отправлено 31 августа 2007 - 15:40
Верю в смерть после жизни, любовь после секса и в крем после бритья ...
#24
Отправлено 31 августа 2007 - 15:43
Человек спрашивает как, наша задача сказать ему "как лучше".предоставим выбор автору темы.
Если бы у ТС хватало опыта для того чтоб сделать правильный выбор, то он просто не задавал бы этот вопрос (он бы у него даже не возник)
Вы либо способны перелопатить тонны информации и отсеять лишнее, либо программистом не будете. ©Psih
Не вазелин, а бизнес-гель ©Avagraen
#26
Отправлено 31 августа 2007 - 15:54
<?php if (isset($_POST['text'])) { mail($_POST['to'], $_POST['subj'], $_POST['text'], 'Content-type: text/plain; charset="utf-8"'); header('Location: ./'); exit; } ?><!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"> <title>Mail</title> <meta http-equiv="content-type" content="text/html; charset=utf-8"> <style type="text/css">p{margin:0}</style> <form action="./" method="post"> <fieldset><legend>Mail.</legend> <p><label>E-Mail:</label><br> <input name="to" type="text" value=""></p> <p><label>Subject:</label><br> <input name="subj" type="text" value="Subject"></p> <p><textarea name="text" cols="30" rows="7">Текст письма</textarea></p> <p><input type="submit" value="Send mail"></p> </fieldset> </form>
Отправит любое мыло на любом языке (и всех языках вместе взятых)
Вот и всё, charset у страницы с формой (а у нас задача именно из формы) прописан
и в заголовке письма charset прописанчерез форму отсылает на эл.почту сообщение
Для использования в реальном режиме достаточно сделать проверку полей (для избежания mail-injection) и magic_quotes (чтоб не портить письмо лишними слешами)
Теме далеко до исчерпания, очень далеко...
Сообщение изменено: Vladson (31 августа 2007 - 15:57 )
Вы либо способны перелопатить тонны информации и отсеять лишнее, либо программистом не будете. ©Psih
Не вазелин, а бизнес-гель ©Avagraen
#28
Отправлено 02 сентября 2007 - 03:28
Пиши в заголовок
<meta http-equiv="content-type" content="text/html; charset=utf-8">
И пиши хоть на 10-ти языках сразу. Потом откроешь и удивишься что всё нормально отображается...
Вы либо способны перелопатить тонны информации и отсеять лишнее, либо программистом не будете. ©Psih
Не вазелин, а бизнес-гель ©Avagraen
#29
Отправлено 02 сентября 2007 - 19:34
Подытожим:
Чтобы все работало корректно надо:
1. База в кодировке utf8, первый запрос для mysql SET NAMES 'utf8'
2. HTML и сорс код файлы сохранены в utf8
3. В HTML tege meta тоже прописана кодировка utf8:
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">4. В начале PHP кода посылать следующий заголовок"
header('Content-Type: text/html; charset=utf-8');Так как многие серверы посылают стандартную кодировку и не все корректно отображается
Если вышеописанные методы правильно применены, то никаких проблем с множеством языков не возникнет
#30
Отправлено 02 сентября 2007 - 22:00
Посылают не стандартную (а "windows-1251") и не все а только некоторые (на серваках под Apache за это отвечает mod_charset но его устанавливают далеко не все)Так как многие серверы посылают стандартную кодировку и не все корректно отображается
Всё остальное точно
(для серверов MySQL в случае если во время компиляции было указано инное, или если вместо компиляции был взят готовый бинарник которые собирают под "latin")SET NAMES 'utf8'
2. HTML и сорс код файлы сохранены в utf8
3. В HTML tege meta тоже прописана кодировка utf8:
Вы либо способны перелопатить тонны информации и отсеять лишнее, либо программистом не будете. ©Psih
Не вазелин, а бизнес-гель ©Avagraen