Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/71.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Html 读取HTM文件:每个字符周围的神秘空白_Html_Regex_Perl - Fatal编程技术网

Html 读取HTM文件:每个字符周围的神秘空白

Html 读取HTM文件:每个字符周围的神秘空白,html,regex,perl,Html,Regex,Perl,我有一个HTM文件。当我在记事本中直接打开它时,它看起来像这样: <HTML> <BODY BGCOLOR=#FFFFFF BGPROPERTIES=FIXED> <FONT 000000 FACE=ARIAL SIZE=3> <HEAD> < H T M L > < B O D Y B G C O L O R = # F F F F F F B G P R O P E R T I E S = F I X E D

我有一个HTM文件。当我在记事本中直接打开它时,它看起来像这样:

<HTML>
<BODY BGCOLOR=#FFFFFF BGPROPERTIES=FIXED>
<FONT 000000 FACE=ARIAL SIZE=3>
<HEAD>
< H T M L >    
< B O D Y   B G C O L O R = # F F F F F F   B G P R O P E R T I E S = F I X E D >    
< F O N T   0 0 0 0 0 0   F A C E = A R I A L   S I Z E = 3 >    
< H E A D >   

我应用了
s/\x0//g
,这显然将许多空字符转换成了汉字。我用
s/[^[:ascii:]+//g清除了这些代码。这并不理想,但似乎有效。

除了编码文本之外,没有文本。每个文件都使用一种特定的字符编码写入,并且必须使用相同的编码读取


HTML文件是格式化文本。他们有一个文件编码的一个文件是写的。文档“值”是一个Unicode字符序列。如果文件不使用Unicode编码,则字符可以表示为数字字符实体(例如,🚲;而不是检查编辑器如何处理空格、换行符和其他内容。还要检查您在每个环境中使用的编码,或者至少发布这些信息。您如何获得间隔输出?文件的编码是什么?确保它没有编码为UTF-16,或者如果是,请确保在读取时正确解码。此外,它还包括:如果您向我们展示了如何实际打印数据以及您引用的代码与打印数据时发生的任何相关情况,我们将提供帮助。此外,通过hexdump运行脚本输出,查看这些空格的实际内容。这些不是空格,而是空字节。这就是
s///
不起作用的原因。文件编码为UTF-16(每个字符存储在2个字节上)。在这种情况下,记事本的最佳用法是将文件保存为UTF-8(但其他编辑器可以更快更好地完成此工作。)
.HTM
extension+
BGPROPERTIES
+
+HTML标签大写=>欢迎来到1997!
< H T M L >    
< B O D Y   B G C O L O R = # F F F F F F   B G P R O P E R T I E S = F I X E D >    
< F O N T   0 0 0 0 0 0   F A C E = A R I A L   S I Z E = 3 >    
< H E A D >   
foreach (@lines) {
    $line .= "$_\n";
}

open( $fh, '>', 'output-file.txt' ) or die "Could not open file $!";
print $fh $line;
close $fh;