2017-03-27 10 views
0

我有問題的PHP編碼。如何設置正確的輸出編碼在PHP

我的PHP文件是UTF-8編碼

但每一個PHP函數做一些錯誤編碼:

例如:在我的劇本,我可以寫:

echo 'zażółć gęślą jaźń'; 
echo strtolower('zażółć gęślą jaźń'); 

,這是什麼我得到:

zażółć gęślą jaźń 
za���� g��l� ja��� 

無論我做什麼,我使用什麼編碼。

我確定它可以設置在某個地方。在php.ini

DEFAULT_CHARSET設置爲UTF-8

任何幫助

+0

http://php.net/manual/en/function.strtolower.php。該函數中的字符轉換取決於語言環境。該網站似乎爲UTF-8轉換提供了一些建議的解決方法。 –

+0

我使用的任何php函數都會將區域信件更改爲?跡象。 –

回答

1
$text = 'zażółć gęślą jaźń'; 

大感謝,如果你試圖用這個mb_strtolower($text, 'UTF-8');

+0

這裏沒有運氣。要清楚 - 任何返回字符串的PHP函數都會導致「?」跡象,我擦亮地區的信件。 所以我不尋找額外的PHP功能 - 但提示在哪裏尋找在PHP配置 –

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; 

?> 

希望這對您有所幫助。

+0

沒有工作。我認爲這是在PHP配置 –

0

只是從我的POV一些輸入: 我在我的本地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($文本) - za���� g��l� ja��

$文本 - zażółć gęślą jaźń

用strtolower($文本) - zażółć gęślą jaźń

mb_strtolower( 'zażółćgęśląJAZN') - za���� g��l� ja��

用strtolower(「zażółć gęśląjaźń') - zażółć gęślą jaźń

mb_strtolower($ text,'UTF-8') - zażółć gęślą jaźń

+0

您的代碼結果是: [code]za g l ja zażółćgęśląjaźń za g l ja za g l ja za g l ja zażółćgęśląjaźń[/ code] –