重音字符出现在文本文件中但不出现在终端(osx)中

时间:2014-07-02 14:32:27

标签: php macos character-encoding

我一直在努力从数据库中检索数据,我一直无法显示重音字符(它们显示为?,我尝试了许多尝试并使其工作)。< / p>

我只是尝试使用file_put_contents将数据放入文件中,这意味着问题可能出在终端本身而不是字符编码,除非我错了? 然后,我尝试file_get_contents使用正确的重音字符读取文件,并在终端中显示为?

有没有人知道如何在终端中显示包含重音字符的数据?如果我试图回应一个简单的é它就会完美地显示出来。

谢谢!

我的代码:

<?php

ini_set('default_charset','utf-8');

header('Content-Type: text/html; charset=utf-8');

$username = "username";
$password = "password?";
$dsn = "dsn";

$connection = odbc_connect($dsn, $username, $password, SQL_CUR_USE_ODBC);

$sql = "SELECT \"Insert ID\", \"Date Created\", \"Date Modified\", Description FROM Insert";

$res = odbc_exec($connection,$sql);

$x=0;

while ($row = odbc_fetch_array($res)){

$x++;


   $values= ($x . ": " . " Insert ID:". $row['Insert ID'] . " Date Created: " . $row['Date Created'] . " Date Modified:" . $row['Date Modified'] . " Dscription:" . $row['Description'] . "\n");




   print($values);
}

odbc_free_result($res);

odbc_close($connection);

1 个答案:

答案 0 :(得分:1)

您的PHP文件很可能保存为ISO Latin 1或Mac OS Roman。将其更改为UTF-8,它应该工作。我只是在我的Mac上尝试过它输出'特殊'字符没问题:

<?php
//test.php
$data = 'é';

file_put_contents('./test.txt', $data);

$output = file_get_contents('./test.txt');

echo $output.PHP_EOL;

在Terminal.app中运行脚本:

 $ php test.php //outputs 'é'