我正在尝试使用file()函数将excel文件转换为数组。某些字段包含日文字符。对于这些字段,我没有得到正确的数据。
这是我的代码行
$data = array_map('str_getcsv', file($path));
我已经解决了这个问题
mb_convert_encoding($csv_data[$i][2],"UTF-8", "SJIS");
这将把所有Shift JIS编码字符转换为UTF-8。
我只能猜测没有细节,比如输入的日语字母是如何被错误转换的。
str_getcsv()可以看到系统区域设置,因此设置日语区域设置可能会解决此问题。
此代码
setlocale(LC_ALL, 'ja_JP');
$data = array_map('str_getcsv', file('japanese.csv'));
var_dump($data);
在我的本地计算机上使用以下CSV文件(japanese.CSV,保存在UTF-8中)。
日本語,テスト,ファイル
2行目,CSV形式,エンコードUTF-8
结果是
array(2) {
[0]=>
array(3) {
[0]=>
string(9) "日本語"
[1]=>
string(9) "テスト"
[2]=>
string(12) "ファイル"
}
[1]=>
array(3) {
[0]=>
string(7) "2行目"
[1]=>
string(9) "CSV形式"
[2]=>
string(20) "エンコードUTF-8"
}
}
如您所见,str_getcsv()要求您知道输入CSV文件中使用的是哪种语言。这一次,您可以确保输入始终是日语,但如果CSV的语言不可预测,则无法对其进行解析。此外,如果您的代码在不同的环境中使用,您还需要小心,以免丢失定向区域设置。
问题内容: 我是Python的新手。我想解析一个csv文件,以便它可以识别带引号的值-例如 1997年,福特E350,“超级豪华卡车” 应该拆分为 (“ 1997”,“福特”,“ E350”,“超级豪华卡车”) 并不是 (“ 1997”,“福特”,“ E350”,“超级”,“豪华卡车””) 以上就是我使用类似的东西所得到的。 我该怎么做呢?同样最好将这些值存储在数组或其他数据结构中吗?因为在我从c
问题内容: 我正在尝试在NetBeans 6.0.1中使用OpenCSV解析.csv文件。我的文件包含一些Unicode字符。当我在输出中写入字符时,字符以其他形式显示,例如(HJ1’-E /;)。当我在记事本中打开此文件时,它看起来还可以。 我使用的代码: 问题答案: 首先,您需要知道文件的编码格式,例如UTF-8或UTF-16。生成此文件的原因是什么? 在那之后,它相对简单- 您需要创建一个包
问题内容: 我有以下代码。 如您在上面看到的,如果字符串不包含顶点,名称或透明度,我希望将其打印出来。但是我得到一个编译错误,说|| 参数类型未定义operator。我是编程的新手,所以我不确定这意味着什么,请问有人可以指出正确的方向来修复我的代码吗? 问题答案: || 运算符使用单个布尔项,而不是提供许多不同的参数。
我需要解析一个逗号分隔的文本文件,其中一行可以包含一个json作为列值。该文件还包含一个标题行。 我试图构建一个正则表达式,这样我就可以解析文件并为文件的每一行和hashmap列表创建hashmap。 我意识到regex可能会过于复杂,但我不知道还能如何设计代码来获得每行的hashmap。 我尝试了不同的方法——从SO和其他网站上的例子,但无法获得良好的工作表达。它们处理不同的部分,但不处理整个数
我有包含以下内容的属性文件: 我使用spring配置阅读了以下内容: 但在应用程序开始后,我看到: 我需要,因为我要使用重新启动程序:https://stackoverflow.com/a/3655963/2674303 如何避免这个错误?
问题内容: 我有以下类型的字符串 我想将字符串拆分为每个逗号的数组,但仅将单引号之外的逗号分隔。 我想不出正确的正则表达式进行拆分… 会给我 但结果应该是: 有什么跨浏览器解决方案? 问题答案: 免责声明 以下答案仅适用于一种非常特定的CSV格式。正如DG在评论中正确指出的那样,此解决方案不适合RFC 4180定义的CSV,也不适合MSExcel格式。此解决方案仅演示了如何解析一个(非标准)CSV