Как получить данные utf-8 с помощью php и показать правильную кодировку в dump-файле excelsheet?

Привет Я сохраняю в основном английский и немецкий символы в базу данных mysql, которая в настоящее время настроена на кодировку utf-8.

Я предполагаю, что я должен использовать latin1 charset для этого типа данных, это правильно?

Если да, то как я могу изменить кодировку, чтобы исправить немецкие символы, которые теперь сохранены в utf-8?

ОБНОВИТЬ

Может быть, это проблема с возвратом … Когда я экспортирую данные из db через php, конечно, я получаю utf-8 обратно, могу ли я сделать восстановление, чтобы дать мне latin1?

ОБНОВЛЕНИЕ 1

Хорошо, я создаю сайт, html-кодирование – это uft-8, db – uft-8, и теперь я хочу запустить некоторый экспорт и извлечь данные, которые должны быть возвращены на листе excel, а данные – utf-8, но здесь мне нужны символы latin1 … или кодирование листа excel, извлеченного из db, должно быть таким, чтобы Töst покажет Täst. Прямо сейчас я получаю такие данные -> Töst

ОБНОВЛЕНИЕ 2

Я использую следующий сценарий php для создания дампа:

http://www.fundisom.com/phparadise/php/databases/mySQL_to_excel

on line 48 Я изменил код на

header("Content-Type: application/$file_type; charset=utf-8"); 

никаких изменений в поведении.

Как я могу решить проблему?

Почти решение

 <?php $text = "ö is a valid UTF-8 character"; echo 'Original : ', $text, PHP_EOL; echo 'TRANSLIT : ', iconv("UTF-8", "ISO-8859-1//TRANSLIT", $text), PHP_EOL; echo 'IGNORE : ', iconv("UTF-8", "ISO-8859-1//IGNORE", $text), PHP_EOL; echo 'Plain : ', iconv("UTF-8", "ISO-8859-1", $text), PHP_EOL; ?> 

это то, что мне нужно, я думаю … но мне нужно проверить его в контексте php-скрипта … завтра 🙂

Я согласен с предыдущими ответами, что UTF-8 является хорошим выбором для большинства приложений.

Остерегайтесь ловушек, которые могут вас ждать! Вы хотите быть осторожным, чтобы использовать постоянную кодировку символов во всей системе (формы ввода, выходные веб-страницы, другие интерфейсы, которые могут получить доступ или изменить данные).

Я провел несколько неприятных часов, пытаясь понять, почему на моей веб-странице исказилось простое β или é, только чтобы найти что-то где-то сработало кодирование. Я даже видел случаи, когда текст запускается через несколько кодеров – один раз превращая одиночный кавычек в восемь байтов.

Итог, не предполагайте, что правильный перевод будет выполнен; быть явным о кодировке символов во всем вашем проекте.

Изменить: я вижу, что в вашем обновлении вы уже начали открывать эту особую радость. 🙂

После использования двухбайтовых символов, таких как UTF-8, нет возврата …

Чем ближе вы можете использовать iconv

как это

 <?php $text = "ü is still a valid ISO-8859-1"; echo 'Original : ', $text, PHP_EOL; echo 'TRANSLIT : ', iconv("UTF-8", "ISO-8859-1//TRANSLIT", $text), PHP_EOL; echo 'IGNORE : ', iconv("UTF-8", "ISO-8859-1//IGNORE", $text), PHP_EOL; echo 'Plain : ', iconv("UTF-8", "ISO-8859-1", $text), PHP_EOL; ?> 

подробности: http://php.net/manual/en/function.iconv.php

С UTF-8 вы можете хранить любой символ, поддерживаемый Unicode. С UTF-8 вы можете хранить любой символ, поддерживаемый Unicode, поэтому у вас не должно возникнуть проблемы с его использованием для хранения только латинских символов (которые являются просто небольшим подмножеством что поддерживает Unicode).

Итак, для хранения информации вы в порядке; если вам нужно делать какие-либо преобразования при извлечении данных, это зависит от соединителя, который вы используете для получения данных из БД, и от того, как ваш язык программирования обрабатывает строку.


Для обновления: если вы используете PHP для создания веб-страниц, не можете ли вы просто отправить правильный HTTP-заголовок, указав, что ваша страница закодирована в UTF8?

UTF-8 – лучший выбор для всех целей и задач. Если у вас нет действительно насущной причины пойти на latin1 (например, совместимость с другими приложениями), пойдите для этого.

Существует несколько совпадений UTF-8, которые обрабатывают умлауты и порядок сортировки по-разному (см. Здесь список). Возможно, вам придется выбирать один за другим в зависимости от ваших требований. Тем не менее, все они могут хранить умлаутов.