我从.csv文件导入文本。导入文件时,会有一些奇怪的字符,比如“Õ”。该字符应该是撇号。例如“这是”。任何想法如何将其转换为标准撇号?来自CSV导入的奇怪字符
我敢肯定,他们的问题来自源.csv,但我需要能够转换这些字符。
我从.csv文件导入文本。导入文件时,会有一些奇怪的字符,比如“Õ”。该字符应该是撇号。例如“这是”。任何想法如何将其转换为标准撇号?来自CSV导入的奇怪字符
我敢肯定,他们的问题来自源.csv,但我需要能够转换这些字符。
试试下面的代码
<?php
$row = 1;
if (($handle = fopen("test.csv", "r")) !== FALSE) {
while (($data = fgetcsv($handle, 1000, ",")) !== FALSE) {
$num = count($data);
echo "<p> $num fields in line $row: <br /></p>\n";
$row++;
for ($c=0; $c < $num; $c++) {
echo $data[$c] . "<br />\n";
}
}
fclose($handle);
}
?>
这听起来像你正在运行到 “smart quotes” 的问题。我相信Chris Shiflett有an exact solution to your problem:
<?php
function convert_smart_quotes($string)
{
$search = array(chr(145), chr(146), chr(147), chr(148), chr(151));
$replace = array("'", "'", '"', '"', '-');
return str_replace($search, $replace, $string);
}
?>
它看起来像代码页的问题。 http://www.justskins.com/forums/character-switching-problem-47590.html显示了CP1252和MacRoman的一个示例。尝试使用iconv?
这似乎没有任何效果。撇号现在是一个 。 – 2011-12-31 10:17:57
如果有帮助,我只注意到这也发生在一些空间。 – 2011-12-31 10:21:36
也许输入字符串是在某种Unicode编码? (UTF-8?) – bobbymcr 2011-12-31 10:31:42