奇怪的人物^ M php无法识别

Ita*_*vka 3 php encoding specifications character-encoding

我使用终端(Ubuntu)打开一个文件(保存为ISO 8859-1)并查看新行应该是以下字符的位置^M(前后XX包围).

现在,我在php中运行此代码以查看PHP如何处理:

$text=str_split($text);
var_dump($text);
Run Code Online (Sandbox Code Playgroud)

在var_dump中,我只看到一个大小为4且只有"X"的数组.
知道那里发生了什么吗?

编辑:开放式办公室将此^M正确转换为新行.

另一个编辑:以下代码没有任何改变.echo str_replace("\r","XXXXXX",$text); 我之前运行这个str_split

Ign*_*ams 5

^M不是换行符.^J是换行符.^MWindows是在换行符之前使用的字符,表示它会导致换行符.它也被称为"回车".它的转义序列是\r.

  • 除此之外,大量的`^ M`经常是由ftp将文本文件作为二进制文件从Windows机器(使用每行末尾的`^ M ^ J`序列)传输到Unix机器引起的. (仅使用`^ J`).通过使用ASCII模式,您的ftp程序将解决此问题(但要小心,在二进制数据上使用ASCII模式通常会严重损坏它). (3认同)