如何使用php检索utf-8数据并在excelsheet数据库转储中显示正确的编码?
作者:互联网
嗨,我主要将英文和德文字符保存到mysql数据库中,该数据库目前设置为utf-8字符集.
我假设我应该为这种类型的数据使用latin1字符集,这是正确的吗?
如果是这样,我怎么能改变字符集来纠正现在保存在utf-8中的德语字符?
UPDATE
也许这是一个反击问题…当我通过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是大多数应用程序的不错选择.
但要注意可能正在等待你的陷阱!您需要注意在整个系统中使用一致的字符编码(输入表单,输出网页,可能访问或更改数据的其他前端).
我花了一些不愉快的时间试图找出为什么在我的网页上出现了一个简单的β或é,只是发现某个地方的某些东西已经编码了.我甚至已经看到了通过多个编码器运行的文本案例 – 一次将单个引号转换为8个字节.
底线,不要假设将进行正确的翻译;在整个项目中明确表示字符编码.
编辑:我在你的更新中看到你已经开始发现这种特别的快乐.
标签:php,mysql,utf-8,character-encoding,latin1 来源: https://codeday.me/bug/20190630/1340764.html