我在Mac OS X 10上使用eclipse-php处理一些带有西班牙语文本的文本文件.我的编码设置为UTF-8,除了一个小问题外,一切都很好.在输出文本文件中,所有¡(颠倒的感叹号)都被替换为? ?(两个黑色菱形,问题标记用空格分隔).没有其他角色(¿ñáéíóúü)给我带来任何麻烦.我也有类似的问题,我的Windows Vista的机器(它会取代所有¡带é).任何想法为什么这一个角色在UTF-8中被淘汰以及我如何解决它?
这是我正在使用的代码.我最初没有把它包括在内,因为它太长了,我不确定问题出在哪里.正如你所看到的那样,我试图加入shiplu.mokadd.im的建议,但我仍然得到了? ?.
<?php
ini_set("auto_detect_line_endings", true);
$sourceH = fopen("MainInput.txt", "r") or die("Can't open MainInput.txt.");
$sourceData = array();
$tracker = 0;
while (!feof($sourceH)){
$sourceData[$tracker] = fgets($sourceH);
$sourceData[$tracker] = preg_split("/\t/", $sourceData[$tracker]);
$tracker++;
}
$i = $tracker--;
$chars_hi = 'ABCDEFGHIJKLMNÑOPQRSTUVWXYZÁÉÍÓÚÜ';
$chars_lo = 'abcdefghijklmnñopqrstuvwxyzáéíóúü';
$characters = "ABCDEFGHIJKLMNÑOPQRSTUVWXYZÁÉÍÓÚÜabcdefghijklmnñopqrstuvwxyzáéíóúü1234567890'-";
function lowercase($s) {
global $chars_hi, $chars_lo;
return strtr($s, $chars_hi, $chars_lo);
}
$myNewFile = "Processing/Prepared.txt";
$fhNew = fopen($myNewFile, 'w') or die("can't …Run Code Online (Sandbox Code Playgroud)