我有一个名为:
的PHP脚本http://cyber-flick.com/apiMorpho.php?method=getMorphoData&word=kot
以纯文本显示一些数据:
Cz��� mowy: rzeczownik
Przypadek: dope�niacz
Rodzaj: şe�ski
Liczba: mnoga
你可以看到代替适当的字符,所以有“灌木丛”。我想做的是以某种方式显示它,以便人们在浏览器中看到正确的UTF-8字符。
你可以将它封装在HMTL标签中并以元UTF-8编码设置,但由于从这个脚本收到的数据将被进一步处理我不想使用任何HTML标签,它应该只是纯文本结果集
那么有没有办法通知浏览器这个文件是UTF-8而不使用元标记?
PS。文件以UTF-8编码,如果我手动将浏览器中的字符集编码更改为UTF-8,则显示正常,但我想要完成的是人们不需要这样做。
答案 0 :(得分:93)
header('Content-type: text/plain; charset=utf-8');
答案 1 :(得分:10)
另请注意,将标题设置为"text/plain"
将导致所有html和php(部分)将字符在屏幕上打印为TEXT,而不是HTML。因此,请注意在使用文本类型plain
时可能的HTML无法解析。
使用:
header('Content-type: text/html; charset=utf-8');
也可以返回HTML和PHP。不只是文字。
答案 2 :(得分:8)
PHP默认情况下总是返回以下标题:“Content-Type:text / html”(注意没有字符集),因此必须使用
<?php header('Content-type: text/plain; charset=utf-8'); ?>
答案 3 :(得分:4)
您必须指定数据的编码方式。在元或标题中
header('Content-Type: text/plain; charset=utf-8');
答案 4 :(得分:4)
试试header('Content-Type: text/plain; charset=utf-8');
答案 5 :(得分:2)
HTML文件:
<head>
<meta charset="utf-8">
</head>
PHP文件:
<?php header('Content-type: text/plain; charset=utf-8'); ?>
答案 6 :(得分:1)
HTML:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<meta name="x" content="xx" />
vs Php:
<?php header('Content-type: text/html; charset=ISO-8859-1'); ?>
<!DOCTYPE HTML>
<html>
<head>
<meta name="x" content="xx" />