Board logo

标题: [转载代码] PowerShell实现UTF-8字符转换 [打印本页]

作者: DAIC    时间: 2013-9-30 21:19     标题: 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




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