Board logo

标题: 【完结】20币求空白还原文字 [打印本页]

作者: lxh623    时间: 2019-3-24 22:07     标题: 【完结】20币求空白还原文字

本帖最后由 lxh623 于 2019-4-8 10:38 编辑

这里有个文档,下载打开,是txt。有些汉字不显示,只是空白。
请问,有没有办法还原文字?显像出来。保存为UTF8。
http://bcc.blcu.edu.cn/
BCC汉语词频表   
谢谢!
作者: lxh623    时间: 2019-3-25 08:44

本帖最后由 lxh623 于 2019-3-25 08:52 编辑

第一、是还原,至少提取含有类似字符的行。
第二、(另外计费)想批量搜索网站,得到那个数字(不下载网页)。比如,我准备文本,汉字2万,或者词语10到20万。不知道会不会被封,速度又怎么样?汉字选择多领域,或者古汉语。词汇只用选择多领域。
作者: flashercs    时间: 2019-3-25 20:51

本帖最后由 flashercs 于 2019-3-26 15:13 编辑

空白字符是Unicode的private use,是自定义字体库,字体中没有该字符就显示为空白或方框,只能提取出来.要想显示字体,用eudcedit.exe自己编辑字体库.
请将以下代码保存为 "提取.bat"
  1. @echo off
  2. for /f "tokens=1 delims=:" %%A in ('findstr /n "#######*" %0') do more +%%A %0 >"%~dpn0.ps1"
  3. powershell.exe -ExecutionPolicy Bypass -File "%~dpn0.ps1"
  4. pause
  5. exit /b
  6. ################################################################
  7. # 要处理的txt文件路径或所在目录路径
  8. $filesystemobjectpath = 'E:\unzip\weibo_wordfreq.release.txt'
  9. # 是否处理子目录
  10. $isRecursive = $false
  11. function genFile {
  12.   param (
  13.     [string]$filepath
  14.   )
  15.   Write-Host $filepath -ForegroundColor Green
  16.   $sr = [System.IO.StreamReader]::new($filepath, [System.Text.Encoding]::Default, $false)
  17.   $sw = [System.IO.StreamWriter]::new($filepath + '_private.log', $false, [System.Text.Encoding]::Default)
  18.   while (!$sr.EndOfStream) {
  19.     $str = $sr.ReadLine()
  20.     if ($str -match '[\uE000-\uF8FF]') {
  21.       $sw.WriteLine($str)
  22.     }
  23.   }
  24.   $sr.Close()
  25.   $sw.Close()
  26. }
  27. function genFolder {
  28.   param (
  29.     [string]$folderPath,
  30.     [switch]$recurse
  31.   )
  32.   if ($recurse) {
  33.     Get-ChildItem -LiteralPath $folderPath -Filter '*.txt' -File -Include '*.txt' -Recurse|ForEach-Object {genFile $_.FullName}
  34.   }
  35.   else {
  36.     Get-ChildItem -LiteralPath $folderPath -Filter '*.txt' -File -Include '*.txt'|ForEach-Object {genFile $_.FullName}
  37.   }
  38. }
  39. if ((Get-Item -LiteralPath $filesystemobjectpath).Attributes -band [System.IO.FileAttributes]::Directory) {
  40.   genFolder $filesystemobjectpath $isRecursive
  41. }
  42. else {
  43.   genFile $filesystemobjectpath
  44. }
复制代码

作者: flashercs    时间: 2019-3-25 21:10

20B到手了
到现在都不知这PB有啥用
作者: lxh623    时间: 2019-3-26 14:33

回复 4# flashercs
是不是一个批处理,一个脚本。我不知道怎样修改。谢谢!
作者: flashercs    时间: 2019-3-26 14:47

回复 5# lxh623


    第8行:修改为需要处理的txt文件路径,能明白吗?
作者: flashercs    时间: 2019-3-26 15:00

提取后的字符以记事本打开如图所示:
[attach]11863[/attach]
之所以有些字符可见,是因为 微软的字体渲染的fontlink功能的结果; fontlink到的字体 Segoe UI Symbol 定义了部分Unicode private-use字符,所以显示出来了,若要查看有哪些被Segoe UI Symbol定义了的字体,你可以打开charmap.exe;然后字体选择 Segoe UI Symbol, unicode字符选E000,你就会看到 Segoe UI Symbol已经定义的private-use字符;当然它仅定义了一部分,还有大部分空白字符是需要我们自己定义的,也就是自造字体,可以用eudcedit.exe来造字.
[attach]11864[/attach]
作者: lxh623    时间: 2019-3-26 18:55

回复 7# flashercs
谢谢!




欢迎光临 批处理之家 (http://www.bathome.net/) Powered by Discuz! 7.2