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

[转载代码] PowerShell实现UTF-8字符转换

  1. $strs="百度"
  2. $utf8=""
  3. [text.Encoding]::UTF8.GetBytes($strs)|%{$utf8+="`%"+$_.tostring("x")}
  4. $utf8.ToUpper() #输出为="%E7%99%BE%E5%BA%A6“
  5. $utf8="%E7%99%BE%E5%BA%A6"
  6. $byte=((($utf8).Replace("%",",0x")).substring(1)).Split(",")
  7. [text.Encoding]::UTF8.GetString($byte)#输出为汉字
复制代码
前面是根据自己想法拼凑出来的脚本,随着对powershell的使用增加,了解到了更多的方法和属性:

版本2
  1. $strs="百度"
  2. ([text.Encoding]::UTF8.GetBytes($strs)|%{"`%"+$_.tostring("X")}) -join $null #输出utf8编码
  3. $utf8="%E7%99%BE%E5%BA%A6"
  4. $byte=$utf8.split("%",[StringSplitOptions]::RemoveEmptyEntries)|%{[byte]("0x"+$_)}
  5. [text.Encoding]::UTF8.GetString($byte) #输出为汉字
复制代码
再后来又发现了一个类,实现起来更简单,:

版本3
  1. [void][Reflection.Assembly]::LoadWithPartialName("System.Web")  #加载System.Web
  2. [Web.HttpUtility]::UrlEncode("百度").ToUpper() #输出utf8编码
  3. [Web.HttpUtility]::UrlDecode("%E7%99%BE%E5%BA%A6") #输出为汉字
复制代码
http://hi.baidu.com/shrekzz/item/a20393dbae6e793549e1ddfe

返回列表