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

标签 php mysql utf-8 character-encoding latin1

您好,我主要将英语和德语字符保存到当前设置为 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;
?>

详情:http://php.net/manual/en/function.iconv.php

关于php - 如何使用 php 检索 utf-8 数据并在 excelsheet 数据库转储中显示正确的编码?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4466259/

相关文章:

php - laravel sql 查询中的语法错误

PHP 单个 mySQL 表加上通过单个 HTML 表单未定义数量的多个 mySQL 表条目

php - 如何存储使用 facebook 注册的用户?

MySQL 函数和 CodeIgniter Active Record

php - 我在共享主机上看到其他人的 Redis 数据是否正常?

mysql - 需要 sql 查询来搜索前 10 条记录

mysql - 有很多页面的类别(巨大的偏移量)(stackoverflow 是如何工作的?)

java - 无法将连字符转换为 UTF-8

java - 丢弃服务器 XML 响应中返回的不可打印字符

python - python 和 nltk 的 Utf-8 问题