我有脚本读取* .CSV文件,然后将其内容导出到MSSQL数据库。脚本仅通过CLI运行。
我的问题是此CSV文件包含带有ą,ó,ż,ź,ś
等国家字符的字符串。例如,我有单词pracowników
但在CLI中我看到单词pracownikˇw
。
我的代码
$handler = fopen($file, "r");
if ($handler !== false) {
while (($this->currentRow = fgetcsv($handler, 0, $this->csvDelimiter)) !== false) {
$row = $this->setHeaders(
$this->currentRow,
$this->config[$type]['columnMapping']
);
if ($row !== false) {
$this->dataImported[$type][] = $row;
}
}
fclose($handler);
}
我尝试了什么
fgetcsv
使用setlocale
或不使用 - 不工作。fgetcsv
替换为fgets
并通过str_getcsv
阅读每一行 - 无效。utf8_encode
- 无效。其他信息
ANSII
编码的,我试图用iconv
解码它,但所有特殊字符总是被一些奇怪的符号替换,比如之前显示过。答案 0 :(得分:1)
在$this->currentRow
的循环上尝试使用具有特殊字符的每个元素。
echo mb_convert_encoding($data[$c],"HTML-ENTITIES","UTF-8");