标题: [问题求助] [已解决]Powershell关于文本输出的编码乱码的问题 [打印本页]
作者: wxyz0001 时间: 2021-4-26 01:14 标题: [已解决]Powershell关于文本输出的编码乱码的问题
本帖最后由 wxyz0001 于 2021-4-26 12:58 编辑
- $thePath="E:\news"
- $Patterns=Get-ChildItem $thePath -Filter "*.html"|Select-String -Pattern "<title>"|select Path,Filename,LineNumber,Line
- foreach($Pattern in $Patterns){
- ('{0} : {1} : {2}' -f ($Pattern.Path),($Pattern.LineNumber),($Pattern.Line.Replace("(dzwzzz.com)","")))|Add-Content "output.txt"}
复制代码
▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃
在win10下用记事本打开html文件是ANSI编码,执行代码后,打开输出后的txt文本也是ANSI编码,但是是乱码:- E:\news\1.html : 4 : <title>????ε????? - ??????????</title>
- E:\news\2.html : 4 : <title>???????????? - ??????????</title>
- E:\news\3.html : 4 : <title>?????????? - ??????????</title>
复制代码
我在Add-Content "output.txt"加上-Encoding ascii输出也是一样,没变化
▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃
我在Add-Content "output.txt"加上-Encoding utf8
执行编码后,打开输出的txt文本显示是带有bom的utf-8的编码,乱码变了个花样,如下:- E:\news\1.html : 4 : <title>��һ����������� - ������ժ��־</title>
- E:\news\2.html : 4 : <title>���ҳ�Ϊ����֮ǰ - ������ժ��־</title>
- E:\news\3.html : 4 : <title>һ���в���˰���� - ������ժ��־</title>
复制代码
▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃
以上的html文件用记事本打开是ANSI编码,还有几个个别的html文件是带有BOM的UTF-8的编码,输出后的txt显示的也不正常。
▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃▃
我用Invoke-WebRequest查看了下是ISO-8859-1的编码,但是网页源文件显示的是charset="utf-8"- (Invoke-WebRequest -Uri 'https://www.dzwzzz.com/2016_06/duzh20160620.html').BaseResponse.CharacterSet
复制代码
代码怎么改输出后的txt既是UTF-8的编码又能显示正常呢?
作者: yhcfsr 时间: 2021-4-26 12:10
问题在第二行,Select-String部分改为- Select-String -Pattern "<title>" -Encoding default
复制代码
作者: wxyz0001 时间: 2021-4-26 12:54
回复 2# yhcfsr
点题了,非常感谢!
欢迎光临 批处理之家 (http://bathome.net./) |
Powered by Discuz! 7.2 |