我使用python3中的argparse库从命令行参数读入Unicode字符串。这些字符串通常包含“普通”Unicode字符(扩展拉丁语等),但有时——尤其是当字符属于从右向左的脚本时——将字符串编码为Unicode代码点更容易,如\u0644。但是argparse将这些指示符视为一系列字符,而不会将它们转换为它们指定的字符。例如,如果命令行参数是... -a "abc\06d2d" ...

那么我在argparse变量中得到的是

^{pr2}$

而不是预期的"abcےd"

(“c”和“d”之间的字符是yeh baree)。当然这两个结果都是合乎逻辑的,只是第二个结果是我想要的。在

我试图在解释器中重现这一点,但在大多数情况下,Python3会自动将类似“abc\06d2d”的字符串转换为“abcےd”。当我用argparse读取字符串时就不是这样了。。。在

我想出了一个函数来进行转换,见下文。但我觉得我错过了更简单的东西。有没有更简单的方法来进行这种转换?(显然我可以利用str.startswith(),或正则表达式来匹配整个内容,而不是逐个字符地进行,但下面的代码实际上只是一个示例。似乎我根本不应该创建自己的函数来执行此操作,尤其是在某些情况下,它似乎是自动发生的。)

----------我的代码如下所示--------def ParseString2Unicode(sInString):

"""Return a version of sInString in which any Unicode code points of the form

\uXXXX (X = hex digit)

have been converted into their corresponding Unicode characters.

Example:

"\u0064b\u0065"

becomes

"dbe"

"""

sOutString = ""

while sInString:

if len(sInString) >= 6 and \

sInString[0] == "\\" and \

sInString[1] == "u" and \

sInString[2] in "0123456789ABCDEF" and \

sInString[3] in "0123456789ABCDEF" and \

sInString[4] in "0123456789ABCDEF" and \

sInString[5] in "0123456789ABCDEF":

#If we get here, the first 6 characters of sInString represent

# a Unicode code point, like "\u0065"; convert it into a char:

sOutString += chr(int(sInString[2:6], 16))

sInString = sInString[6:]

else:

#Strip a single char:

sOutString += sInString[0]

sInString = sInString[1:]

return sOutString

python unicode码转字符_将Unicode码位号转换为Unicode字符相关推荐

  1. Python贪吃蛇小游戏_完整源码免费分享

    文章目录 Python 贪吃蛇小游戏 1. 导包 2. 配置初始化参数 3. 主函数及运行主体 4. 画食物的函数 5. 画贪吃蛇的函数 6. 画网格的函数(非必选,觉得多余的可以忽略此项) 7. 操 ...

  2. 二维码简介_二维码基本概念_二维码基本原理

    一.二维码简介_二维码基本概念_二维码基本原理 1.二维码又称二维条码,常见的二维码为QR Code,QR全称Quick Response,是一个近几年来移动设备上超流行的一种编码方式,它比传统的Ba ...

  3. java错误编码不可映射字符_“用于编码UTF-8的不可映射字符”错误

    你的源代码文件有编码问题. 它可能是ISO-8859-1编码,但编译器被设置为使用UTF-8. 这在使用字符时会导致错误,在UTF-8和ISO-8859-1中不会有相同的字节表示. 这将发生在所有不属 ...

  4. pcie扰码的作用_分享 扰码的作用

    扰码 要分上行和下行链路来考虑: 扰码就是就是用一个伪随机码序列对扩频码进行相乘,对信号进行加密.上行链路物理信道加扰的作用是区分用户,下行链路加扰可以区分小区和信道. 在上行链路中,扰码区分用户,扩 ...

  5. github 码云 获取_开源中国码云,岂止于中国版GitHub!

    [引言]2008年4月,三位美国开发者创办了后来风靡全球的GitHub,成为开源技术发展的一座里程碑.5年之后,中国最大的开源技术社区开源中国社区上线"码云"平台代码托管服务--G ...

  6. java unicode是什么意思_(转)谈谈对Java中Unicode、编码的理解

    我们经常会遇到编码问题.Java号称国际化的语言,是因为它的class文件采用UTF-8,而JVM运行时使用UTF-16(至于为什么JVM中要采用UTF-16,我没看过 相关的资料,但我猜可能是因为J ...

  7. python神经网络库识别验证码_基于TensorFlow 使用卷积神经网络识别字符型图片验证码...

    本项目使用卷积神经网络识别字符型图片验证码,其基于TensorFlow 框架.它封装了非常通用的校验.训练.验证.识别和调用 API,极大地减低了识别字符型验证码花费的时间和精力. 项目地址:http ...

  8. python测试开发教程 龙腾_龙腾源码网京东 有货自动下单,Python 脚本 你的口罩...

    本帖最后由 小朋友 于 2020-2-7 13:24 编辑 这个 githubcom/tychxn/jd-assistant 我写了个 Windows下的一键安装Python运行环境和安装依赖库的脚本 ...

  9. python统计中英文字符_如何统计文本中的中英文字符数?Python帮你解决

    本文的文字及图片来源于网络,仅供学习.交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理 以下文章来源于小蚊子数据分析 ,作者小蚊子数据分析 代码 1import stri ...

最新文章

  1. c#-检查USB硬件变化
  2. How is new Appoinment id generated in my task followup scenario
  3. .net Mvc Controller 接收 Json/post方式 数组 字典 类型 复杂对象
  4. 面试官系统精讲Java源码及大厂真题 - 40 打动面试官:线程池流程编排中的运用实战
  5. 如何使用Power BI和R脚本创建高级分析
  6. php判断是不是手机端访问
  7. Axure Rp汉化安装
  8. kubernetes快速部署及常用命令
  9. jQuery页面加载事件
  10. paper - A Physics-based Noise Formation Model for Extreme Low-light Raw Denoising
  11. BlackBerry 7290如何传自定义图片
  12. Qt 3D:线框 QML 示例
  13. DISM用于Win7部署的实验笔记
  14. 和信贷接入百行征信之后......
  15. python 数据分析入门教程(三)_Python数据分析入门教程(三):数据选择——AIU人工智能学院-经管之家官网!...
  16. 手把手教你做主成分分析
  17. 22.单文件组件-webpack打包发布
  18. jenkins构建时git报错:hudson.plugins.git.GitException: Failed to fetch from
  19. 51nod 1001
  20. 风暴魔域怎么在电脑上玩 风暴魔域电脑版玩法教程

热门文章

  1. 用vb.net编写的软件有哪些?
  2. android实现震动和声音
  3. 肝了 15000 字性能调优系列专题(JVM、MySQL、Nginx and Tomcat),看不完先收藏
  4. vant 引入其他图标
  5. RStudio 安装后启动闪退,无法打开(windows)
  6. 第一颗国产 HDMI2.0 至带音频的四端口 LVDS 芯片 LT6211UX
  7. 工控软件——驱动框架
  8. Swif学习之路 - - - 基础
  9. iis服务器怎样配置多张证书,IIS:管理多个 Web 服务器上的多个证书 | Microsoft Docs...
  10. 如何在硬盘上恢复已经删除的照片?