您好,我主要将英语和德语字符保存到当前设置为 utf-8 字符集的 mysql 数据库中。
我假设我应该为这种类型的数据使用 latin1 字符集,对吗?
如果是这样,我如何更改字符集以更正现在保存在 utf-8 中的德语字符?
更新
也许这是一个检索问题...当我通过 php 从数据库导出数据时,我当然会得到 utf-8,我可以检索给我 latin1 吗?
更新 1
好的,我正在建立一个网站,html 编码是 uft-8 db 是 uft-8,现在我想运行一些导出和提取数据,应该在 excel 表中返回,数据是 utf -8,但这里我需要字符为 latin1 ... 或者从数据库中提取的 excel 表的编码需要这样 Töst 将显示 Täst。现在我得到这样的数据 -> Töst
更新 2
我正在使用以下 php 脚本进行转储:
http://www.fundisom.com/phparadise/php/databases/mySQL_to_excel
在第 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 这样的双字节字符,就没有回头路了......
你可以使用更接近的是 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;
?>
关于php - 如何使用 php 检索 utf-8 数据并在 excelsheet 数据库转储中显示正确的编码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4466259/