Php 如何在Shift_JIS字符集中创建CSV文档?

Php 如何在Shift_JIS字符集中创建CSV文档?,php,csv,character-encoding,shift-jis,Php,Csv,Character Encoding,Shift Jis,我可以通过添加BOM强制将CSV文件检测为UTF-8,如下所示: file_put_contents($filename, "\xEF\xBB\xBF" . $csv); 我是否可以做类似的事情来强制将CSV文件检测为Shift_JIS?Shift JIS没有与BOM相同的“内容类型标记”。如果您输出了一个以Shift JIS编码的CSV,那么任何读取该文件的人都必须知道它在Shift JIS中,否则将检测编码 要创建Shift JIS编码的文件,只需确保您的$csv数据是Shift JIS编

我可以通过添加BOM强制将CSV文件检测为UTF-8,如下所示:

file_put_contents($filename, "\xEF\xBB\xBF" . $csv);

我是否可以做类似的事情来强制将CSV文件检测为Shift_JIS?

Shift JIS没有与BOM相同的“内容类型标记”。如果您输出了一个以Shift JIS编码的CSV,那么任何读取该文件的人都必须知道它在Shift JIS中,否则将检测编码


要创建Shift JIS编码的文件,只需确保您的
$csv
数据是Shift JIS编码的。如有必要,使用iconv或mb\U Convert\U编码进行转换。

Shift JIS没有与BOM相同的“内容类型标记”。如果您输出了一个以Shift JIS编码的CSV,那么任何读取该文件的人都必须知道它在Shift JIS中,否则将检测编码


要创建Shift JIS编码的文件,只需确保您的
$csv
数据是Shift JIS编码的。如有必要,使用
iconv
mb\u Convert\u编码进行转换。

您要确保实际将数据写入Shift\u JIS字符集中的文件,对吗?是的,我导出到UTF-8是可以的。现在,我想更改为Shift_JIS。您要确保实际将数据写入Shift_JIS字符集中的文件,对吗?是的,我导出到UTF-8是可以的。现在,我想更改为Shift_-JIS。我使用mb_-convert_编码($csv,“Shift-JIS”,“UTF-8”);但我打开的文件仍然是UTF-8格式的ANSI。你是说你的文本编辑器认为它是ANSI编码的还是实际上是ANSI编码的?同样,Shift-JIS没有神奇的标记,如果编辑器本身没有检测到它,你可能需要告诉编辑器它应该用什么编码打开文件。不,它不一样。你看到正确的字符了吗,还是看到了GobbleDeBook?如果是前者,则文档实际上不是Shift JIS编码的。如果是后者,则文档是Shift-JIS编码的,Notepad++太愚蠢了,无法实现它。同样,打开文件时选择“Shift JIS”,告诉Notepad++该文件是用Shift JIS编码的。我不知道记事本++,不能告诉你怎么做。也许读过。@mum你可以在
Notepad++
Encoding->Character set->Japanese->Shift-Jis
中找到Shift-Jis,我使用mb_convert_编码($csv,“Shift-Jis”,“UTF-8”);但我打开的文件仍然是UTF-8格式的ANSI。你是说你的文本编辑器认为它是ANSI编码的还是实际上是ANSI编码的?同样,Shift-JIS没有神奇的标记,如果编辑器本身没有检测到它,你可能需要告诉编辑器它应该用什么编码打开文件。不,它不一样。你看到正确的字符了吗,还是看到了GobbleDeBook?如果是前者,则文档实际上不是Shift JIS编码的。如果是后者,则文档是Shift-JIS编码的,Notepad++太愚蠢了,无法实现它。同样,打开文件时选择“Shift JIS”,告诉Notepad++该文件是用Shift JIS编码的。我不知道记事本++,不能告诉你怎么做。也许读过。@mum你可以在
Notepad++
Encoding->Character set->Japanese->Shift-Jis中找到Shift-Jis