[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[问题求助] [已解决]Powershell关于文本输出的编码乱码的问题

本帖最后由 wxyz0001 于 2021-4-26 12:58 编辑
  1. $thePath="E:\news"
  2. $Patterns=Get-ChildItem $thePath -Filter "*.html"|Select-String -Pattern "<title>"|select Path,Filename,LineNumber,Line
  3. foreach($Pattern in $Patterns){
  4.     ('{0} : {1} : {2}' -f ($Pattern.Path),($Pattern.LineNumber),($Pattern.Line.Replace("(dzwzzz.com)","")))|Add-Content "output.txt"}
复制代码
▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃
在win10下用记事本打开html文件是ANSI编码,执行代码后,打开输出后的txt文本也是ANSI编码,但是是乱码:
  1. E:\news\1.html : 4 : <title>????ε????? - ??????????</title>
  2. E:\news\2.html : 4 : <title>???????????? - ??????????</title>
  3. E:\news\3.html : 4 : <title>?????????? - ??????????</title>
复制代码
我在Add-Content "output.txt"加上-Encoding ascii输出也是一样,没变化
▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃
我在Add-Content "output.txt"加上-Encoding utf8
执行编码后,打开输出的txt文本显示是带有bom的utf-8的编码,乱码变了个花样,如下:
  1. E:\news\1.html : 4 : <title>��һ����������� - ������ժ��־</title>
  2. E:\news\2.html : 4 : <title>���ҳ�Ϊ����֮ǰ - ������ժ��־</title>
  3. E:\news\3.html : 4 : <title>һ���в���˰���� - ������ժ��־</title>
复制代码
▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃

以上的html文件用记事本打开是ANSI编码,还有几个个别的html文件是带有BOM的UTF-8的编码,输出后的txt显示的也不正常。
▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃

我用Invoke-WebRequest查看了下是ISO-8859-1的编码,但是网页源文件显示的是charset="utf-8"
  1. (Invoke-WebRequest -Uri 'https://www.dzwzzz.com/2016_06/duzh20160620.html').BaseResponse.CharacterSet
复制代码
代码怎么改输出后的txt既是UTF-8的编码又能显示正常呢?

问题在第二行,Select-String部分改为
  1. Select-String -Pattern "<title>" -Encoding default
复制代码
1

评分人数

QQ 33892006

TOP

回复 2# yhcfsr
点题了,非常感谢!

TOP

返回列表