php - 如何让 FGETCSV 读取整个日语单元格

标签 php encoding fgetcsv

我进行了一项大型研究,涉及大约 50 个问题和 70,000 个条目,因此手动编辑或使用数据透视表实际上行不通,我需要将数据上传到数据库中。使用 fgcsv() 时,我无法准确读取日语字符。我尝试将语言环境设置为 UTF-8 和 SJIS,但似乎都不想读取所有日语字符。我在某处读到这可能是一个错误,但我不知道..

数据如下所示:

Q-004   必須回答    あなたは、以下のどちらにお住まいですか?    S/A
1       北海道 Hokkaido
2       青森県 Aomori
3       岩手県 Iwate
4       宮城県 Miyagi
5       秋田県 Akita

这是我的代码:

setlocale(LC_ALL, 'ja_JP.SJIS');
        $fp = fopen($_POST["filename"],'r') or die("can't open file");
            $csv_line = fgetcsv($fp,1024);
            $query = "";
            $count = 0;
            $question = false;
            while($csv_line = fgetcsv($fp,1024)) {

                if (!$question && strpos($csv_line[0],"Q-")!== false)
                {
                    echo "Found a question: ".$csv_line[2] . "<br>";
                    $question = true;
                }
                else if($question && strlen($csv_line[0])==0)
                {
                    echo "<hr>";
                    $question = false;
                }
                else if($question && intval($csv_line[0])>0)
                {
                    echo $csv_line[0]. " has value ". $csv_line[2]." - ".$csv_line[3]. "<br>";
                }       

                $count++;
            }
        echo "$count records read successfully";
        fclose($fp) or die("can't close file");

结果如下:

Found a question: A以下のどちらにお住まいですか?
1 has value k海道 - Hokkaido
2 has value X県 - Aomori
3 has value - Iwate
4 has value {城県 - Miyagi
5 has value H田県 - Akita

最佳答案

当谈到在 PHP 中读取 CSV 时,我会说...不要这样做,而是使用 SQL 数据库,您可以在 MySQL 中设置排序规则,例如 ujis_japanese_ci .

您应该能够使用 phpMyAdmin 轻松将 CSV 导入 MySQL 数据库(如果您有的话),然后从 MySQL 数据库呈现数据,而不是读取 CSV 文件。

这是一种解决方法,当然,但我的一般经验是 CSV + 外来/特殊字符 == 问题。

我相信这至少值得一试。祝你好运

关于php - 如何让 FGETCSV 读取整个日语单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11963213/

相关文章:

javascript - 在 jquery.dataTable 中同时输入两个字段

php - 准备()语句不起作用 PHP(SQL 查询)

azure - IPython Notebook 中的奇怪符号

c++ - Windows 使用带有 UTF-16 的 char * 函数

php 函数 fgetcsv() 在 cron 作业时出错

php - 更多重定向后获取问题,我做错了什么

php - 无法以管理员权限访问mysql数据库

php - 在 MySql 数据库中存储序列化对象

PHP - CSV 到 MySQL 到前端,再返回到 CSV,最佳编码/字符串函数实践?

php - 注意 : Undefined variable: csvFile inon line 160 , 警告 : fclose() expects parameter 1 to be resource, 第 160 行给出 null