如何使用 php 检索 utf-8 数据并在 excelsheet 数据库转储中显示正确的编码?

2024-03-06

您好,我将大部分英语和德语字符保存到 mysql 数据库中,该数据库当前设置为 utf-8 字符集。

我假设我应该对这种类型的数据使用 latin1 字符集,这是正确的吗?

如果是这样,我如何更改字符集以纠正现在保存在 utf-8 中的德语字符?

UPDATE

也许这是一个检索问题......当我通过php从数据库导出数据时,我当然会得到utf-8,我可以检索给我latin1吗?

UPDATE 1

好的,我正在构建一个网站,html编码是uft-8,数据库是uft-8,现在我想运行一些导出并提取数据,这些数据应该在excel表中返回,数据是utf-8,但这里我需要字符为 latin1 ...或者从数据库中提取的 Excel 工作表的编码需要使得 Töst 将显示 Täst。现在我得到这样的数据 -> Töst

UPDATE 2

我正在使用以下 php 脚本来进行转储:

http://www.fundisom.com/phparadise/php/databases/mySQL_to_excel 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;
?>

细节 :http://php.net/manual/en/function.iconv.php http://php.net/manual/en/function.iconv.php

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何使用 php 检索 utf-8 数据并在 excelsheet 数据库转储中显示正确的编码? 的相关文章

随机推荐