我有php编码的问题。
我的php文件是UTF-8编码的
但是每个php函数都会对编码做错:
ex:在我的剧本中我可以写:
void foo(alignas(sizeof(int)) void* a) { ... }
这就是我得到的:
echo 'zażółć gęślą jaźń';
echo strtolower('zażółć gęślą jaźń');
无论我做什么,我使用什么编码。
我确信它可以设置在某个地方。
php.ini中的default_charset设置为UTF-8
非常感谢任何帮助
答案 0 :(得分:0)
$text = 'zażółć gęślą jaźń';
如果您尝试使用此mb_strtolower($text, 'UTF-8');
?
答案 1 :(得分:0)
测试此
<?php
$data = 'zażółć gęślą jaźń'
header('Content-Type: application/json; charset=UTF-8');
print json_encode($data, JSON_UNESCAPED_UNICODE);
?>
OR
<?php
$data = 'zażółć gęślą jaźń'
header('Content-Type: application/json; charset=UTF-8');
print $data;
?>
希望这对你有所帮助。
答案 2 :(得分:0)
来自我的POV的一些输入: 我的localhost 5.5.6上的phpinfo()用于default_charset:
`| Directive Local | Value | Master Value |
| default_charset | no value | no value |`
php.ini文件:
; By default, PHP will output a character encoding using
; the Content-type: header. To disable sending of the charset, simply
; set it to be empty.
;
; PHP's built-in default is text/html
; http://php.net/default-mimetype
default_mimetype="text/html"
; PHP's default character set is set to empty.
; http://php.net/default-charset
;default_charset = "UTF-8"
代码:
e<?php
$text = 'zażółć gęślą jaźń';
?>
<!DOCTYPE HTML>
<html>
<head>
<meta charset="UTF-8">
<title>Format using a different meta charset</title>
</head>
<body>
<?php echo mb_strtolower($text).'<br />'; ?>
<?php echo $text.'<br />'; ?>
<?php echo strtolower($text).'<br />'; ?>
<?php echo mb_strtolower('zażółć gęślą jaźń').'<br />'; ?>
<?php echo strtolower('zażółć gęślą jaźń').'<br />'; ?>
<?php echo mb_strtolower($text, 'UTF-8'); ?>
</body>
</html>
结果:
mb_strtolower($ text) - za���� g��l� ja��
$ text - zażółć gęślą jaźń
strtolower($ text) - zażółć gęślą jaźń
mb_strtolower('zażółćgęśląjaźń') - za���� g��l� ja��
strtolower('zażółćgęśląjaźń') - zażółć gęślą jaźń
mb_strtolower($ text,'UTF-8') - zażółć gęślą jaźń