批處理新手入門導讀[視頻教程]批處理基礎視頻教程[視頻教程]VBS基礎視頻教程
[批處理文件精品]批處理版照片整理器[批處理文件精品]純批處理備份&還原驅動在線第三方下載
返回列表 發帖

[完成]20元求unicode的漢字和拼音

本帖最后由 lxh623 于 2020-7-1 08:38 編輯

昨天求到了從xml取得unicode,還是沒有漢字和拼音。比如:
U+3B88
U+200F5
U+4ACC
U+28DF2

想到一個辦法,從網站搜索。http://www.unicode.org/charts/unihan.html,例如,https://www.unicode.org/cgi-bin/ ... ?codepoint=U%2B3B88
Your Browser是文字。kMandarin是拼音,這一個可能不一定有。
我把所有的unicode碼寫入文本a(UTF8或者ansi)。一行一個。
做成excel,第一行是unicode,第二行是文字,第三行是拼音。(編碼最好unicode)

不知道還有別的辦法沒有。

謝謝!

附件: 您需要登錄才可以下載或查看附件。沒有帳號?注冊
1

評分人數

提供bat代寫,為你省時省力省事,支付寶掃碼頭像支付
QQ: 956535081

TOP

本帖最后由 lxh623 于 2020-6-24 09:08 編輯

回復 2# zaqmlp
謝謝!
有個新的想法。這個網站很慢。下載資料也是,但是,迅雷還好。
批處理怎么設置多線程。謝謝!
不行的話,就算了!

TOP

回復 1# lxh623


  完整的xml有嗎?

TOP

回復 4# netdzb
百度云有cbreader或者Cbeta2016。

TOP

本帖最后由 went 于 2020-6-25 10:58 編輯

了解下powershell的多線程
存為bat,ANSI編碼
測試了下線程太多容易卡死,建議只開5個線程
  1. @powershell -c "Get-Content '%~0' | Select-Object -Skip 1 | Out-String | Invoke-Expression" &pause&exit
  2. #參數
  3. $unicodeFile="C:\Users\lenovo\Desktop\a.txt"; #unicode文件路徑
  4. $saveFile="C:\Users\lenovo\Desktop\data.csv"; #保存的csv文件路徑
  5. $maxThreadCount=5; #最大線程
  6. if((Test-Path $saveFile)){Remove-Item -Path $saveFile}
  7. #任務腳本
  8. $queryJob={
  9.     param($unicode="")
  10.     if($unicode -eq ""){return;}
  11.     $word="";$kMandarin=""
  12.     $ie=New-Object -ComObject "InternetExplorer.Application";
  13. $ie.Visible=$false;
  14.     $ie.Navigate("https://www.unicode.org/cgi-bin/GetUnihanData.pl?codepoint="+$unicode);
  15.     while($ie.Busy){Start-Sleep -Seconds 1}
  16.     $text=$ie.Document.querySelector("body").innerText;
  17.     if($text -match "Your Browser\s*(\S*?)\s"){$word=$Matches[1]}
  18.     if($text -match "kMandarin\s*(\S*?)\s"){$kMandarin=$Matches[1]}
  19.     $ie.Quit();
  20.     return $unicode+","+$word+","+$kMandarin;
  21. }
  22. #設置線程池
  23. $pool=[runspacefactory]::CreateRunspacePool(1,$maxThreadCount);
  24. $pool.Open(); #打開線程池
  25. $threads=New-Object "System.Collections.ArrayList"; #線程集
  26. $results=New-Object "System.Collections.ArrayList"; #結果集
  27. #開始創建線程
  28. Get-Content $unicodeFile | Select-Object -Unique | foreach {
  29.     Write-Host ("添加任務:{0}" -f $_);
  30.     $thread=[powershell]::Create(); #新建線程
  31.     $thread.RunspacePool=$pool; #設置線程池
  32.     [void]$thread.AddScript($queryJob); #任務腳本
  33.     [void]$thread.AddArgument($_.Trim()); #任務參數
  34.     [void]$threads.Add($thread); #保存線程
  35.     [void]$results.Add($thread.BeginInvoke()); #保存結果
  36. }
  37. Write-Host "任務全部創建完成!`n"
  38. #監視線程狀態,1秒更新一次
  39. $datas=New-Object "System.Collections.ArrayList";
  40. $count=0;
  41. while($true){
  42.     $allDone=$true;
  43.     for($i=0;$i -lt $results.Count;$i++){
  44.         if($results[$i] -ne $null){
  45.             if($results[$i].IsCompleted){
  46.                 $data=$threads[$i].EndInvoke($results[$i])[0];
  47.                 Write-Host ("{0} 任務完成" -f $data);
  48.                 [void]$datas.Add($data);
  49.                 $threads[$i].Dispose();
  50.                 $threads[$i]=$null;
  51.                 $results[$i]=$null;
  52.                 $count++;
  53.                 [System.Console]::Title="進度:{0}/{1} " -f $count,$threads.Count;
  54.             } else {
  55.                 $allDone=$false;
  56.             }
  57.         }
  58.     }
  59.     if($allDone){break};
  60.     Start-Sleep -Seconds 1
  61. }
  62. Write-Host "任務全部完成!`n"
  63. #寫入文件
  64. $datas | Out-String | Out-File $saveFile -Encoding unicode
  65. Write-Host ("已寫入文件: {0}" -f $saveFile);
  66. #關閉線程池
  67. $pool.Close();
復制代碼
1

評分人數

TOP

回復 6# went
這個在哪里修改線程?
要是不打開瀏覽器,就更好了。

TOP

回復 7# lxh623
改第5行

TOP

回復 8# went
請問,支付寶帳號。謝謝!

TOP

回復 3# lxh623


不是發了2種嗎,用2.bat不行么
提供bat代寫,為你省時省力省事,支付寶掃碼頭像支付
QQ: 956535081

TOP

回復 9# lxh623
點我頭像

TOP

回復 11# went
請查收!

TOP

返回列表
中国体育彩票今日中奖号码