HTML специальные символы в электронной почте - PullRequest
0 голосов
/ 14 июля 2011

Я написал скрипт для чтения электронной почты из почтового ящика.

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

этот персонаж выглядит примерно так http://brucejohnson.ca/HTMLCharacters13.html

Любая идея, как преобразовать их в оригинальный контент.

Ответы [ 3 ]

1 голос
/ 14 июля 2011

если сценарий дает вам эти символы, то у вас есть два варианта: увидеть символ как есть или увидеть числовой эквивалент этого символа (в различных базах - восьмеричное, шестнадцатеричное и т. Д.).

ЕстьВы уверены, что ваш сценарий не пытается прочитать зашифрованную почту, и что ваш сценарий работает нормально?

Попробуйте вставить фиктивные тестовые данные в функции / сценарий, которые вы написали, чтобы убедиться, что он выдает результатвы ожидаете.

Надеюсь, это поможет

0 голосов
/ 14 июля 2011

Сначала необходимо проверить кодировку кодировки в заголовках писем.

После того, как вы это сделали, вы выбрали 1 из 2 методов, измените кодировку в HTML или измените кодировку (где это возможно) на кодировку, которую вы уже используете (вероятно, UTF-8)

Если вы динамически меняете кодировку HTML в заголовке, то вашей самой большой проблемой является то, что пользователям нужно будет указать правильную кодировку в настройках своего браузера, например, мой установлен на UTF-8, однако мои электронные письма соответствуют ISO-8859-1, поэтому, если бы я использовал этот метод каждый раз, когда я смотрю на сайт, мне нужно было бы сменить кодировку своего браузера, но у моего друга ISO-8859-1 в качестве его обычной кодировки, поэтому у него не было бы проблем.

Если вы кодируете символы в UTF-8 (например, utf8_encode в php), вам нужно убедиться, что контент еще не находится в UTF-8, в противном случае вы можете обнаружить, что функция кодирования создает другие недопустимые символы.

Способ, которым я справляюсь, заключается в том, чтобы в основном декодировать заголовок mime письма, а затем использовать preg_match в PHP для определения используемой кодировки, оттуда я запускаю кодировку в UTF-8 или нет.

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

Удачи в вашем приложении

0 голосов
/ 14 июля 2011

вы проверили кодировку символов Это должно быть UTF-8.Если это western europian then change to UTF-8

...