打印日文(中文)字符

2024-02-26

我读日语,想尝试处理一些日语文本。我使用 Python 3 尝试过:

for i in range(1,65535):
    print(chr(i), end='')

然后Python给了我很多错误。什么地方出了错?

 !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~Traceback (most recent call last):
  File "C:\test\char.py", line 11, in <module>
    print(chr(i), end='')
  File "C:\Python31\lib\encodings\cp1252.py", line 19, in encode
    return codecs.charmap_encode(input,self.errors,encoding_table)[0]
UnicodeEncodeError: 'charmap' codec can't encode character '\x80' in position 0: character maps to <undefined>

我的理解是chr函数继续将 Unicode 数字转换为相应的日语字符。如果是的话,为什么不输出日文字符?为什么它在罗马字符列表的末尾崩溃?

如果我的理解有误,请纠正我,即 Unicode 集只是为了迎合非西方语言而设计的。


EDIT:

我在 IDLE 中尝试了 John Machin 建议的 3 行,输出有效!

在此之前,我一直使用程序员记事本,并设置工具来捕获 python.exe 编译器的输出。也许这就是错误发生的原因。

然而,对于大多数其他事情,输出都可以正确捕获;那么为什么在这个过程中特别失败呢?即为什么代码可以在 IDLE Python Shell 中工作,但不能通过程序员的记事本输出捕获来工作?无论接口如何,输出不应该是相同的吗?


如果您说您读日语,您必须知道日语是使用四种不同类型的字符书写的:(1)汉字(汉字)(2)片假名(3)平假名(4)罗马字(“罗马”字母)。汉字有数以万计,但常用的只有几千个。

你的代码,如果它像你想象的那样工作,不仅会打印“罗马”字符,还会打印希腊语,阿拉伯语,希伯来语,西里尔语(用于俄语等),亚美尼亚语,大约六种不同但相关的字符印度使用的字符集,很多我都遗漏了,大约 11000 个 Hangul 音节(用于韩语)和一堆未使用的代码点的胡言乱语,并且(取决于您在哪个 shell 中运行它)可能当到达 0xD800(第一个代理)时崩溃了。

稍微少一点野心就会给你平假名、片假名和一些“中日韩统一表意文字”。下面的示例在 IDLE 中运行。

>>> for i in range(0x3040, 0x30a0): print(chr(i), end='')

぀ぁあぃいぅうぇえぉおかがきぎくぐけげこごさざしじすずせぜそぞただちぢっつづてでとどなにぬねのはばぱひびぴふぶぷへべぺほぼぽまみむめもゃやゅゆょよらりるれろゎわゐゑをんゔゕゖ゗゘゙゚゛゜ゝゞゟ
>>> for i in range(0x30a0, 0x3100): print(chr(i), end='')

゠ァアィイゥウェエォオカガキギクグケゲコゴサザシジスズセゼソゾタダチヂッツヅテデトドナニヌネノハバパヒビピフブプヘベペホボポマミムメモャヤュユョヨラリルレロヮワヰヱヲンヴヵヶヷヸヹヺ・ーヽヾヿ
>>> for i in range(0x4e00, 0x4f00): print(chr(i), end='')

一丁丂七丄丅丆万丈三上下丌不与丏丐丑丒专且丕世丗丘丙业丛东丝丞丟丠両丢丣两严並丧丨丩个丫丬中丮丯丰丱串丳临丵丶丷丸丹为主丼丽举丿乀乁乂乃乄久乆乇么义乊之乌乍乎乏乐乑乒乓乔乕乖乗乘乙乚乛乜九乞也习乡乢乣乤乥书乧乨乩乪乫乬乭乮乯买乱乲乳乴乵乶乷乸乹乺乻乼乽乾乿亀亁亂亃亄亅了亇予争亊事二亍于亏亐云互亓五井亖亗亘亙亚些亜亝亞亟亠亡亢亣交亥亦产亨亩亪享京亭亮亯亰亱亲亳亴亵亶亷亸亹人亻亼亽亾亿什仁仂仃仄仅仆仇仈仉今介仌仍从仏仐仑仒仓仔仕他仗付仙仚仛仜仝仞仟仠仡仢代令以仦仧仨仩仪仫们仭仮仯仰仱仲仳仴仵件价仸仹仺任仼份仾仿

Update您遇到问题的原因是您使用的 shell/IDE 仅提供 Windows GUI bog-standard stdout,其默认编码(在您的树林中)是 cp1252 (请记住在回溯中提到 cp1252 ?)这对于您的情况来说对于罗马字来说已经足够了,但除此之外就没有什么了。无需下载即可随处使用的替代方案:(1) IDLE (2) 写入以 UTF-8 编码的文件并在记事本中读取。我确信其他人可以推荐其他 IDE。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

打印日文(中文)字符 的相关文章

随机推荐

  • 将父容器的平移手势交给嵌套的 UICollectionView

    我正在尝试构建一个复杂的分割视图容器控制器 该控制器有利于两个可变高度容器 每个容器都有自己的嵌套视图控制器 父控制器上有一个全局平移手势 允许用户拖动视图容器中的任意位置 并在视图之间上下滑动 分隔线 它还具有一些智能位置阈值检测逻辑 可
  • 如何为 Cosmos 数据库中的每个文档设置字段?

    将每条记录的 PumperID 字段设置为默认值的 Cosmos 存储过程会是什么样子 我们需要这样做来修复一些数据 因此该过程将访问具有 PumperID 字段的每条记录 并非所有文档都有此字段 并将其设置为默认值 假设执行一次性数据维护
  • Biztalk Log4Net [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 有人在 Biztalk 中使用过 log4net 吗 我们目前正在考虑使用它 并试图了解它的优点 缺点 以及它是否能满足我们的需求 我已经将 L
  • Tomcat:限制 /just one/ webapp 对 localhost 的访问

    我正在运行 Tomcat 6 来为多个 Web 应用程序提供服务 其中大多数是面向公众的 但我想限制访问just onewebapp 仅允许来自本地主机的连接 我可以限制访问allwebapps 在 context xml 中使用 Valv
  • Java 7 独立应用程序中的依赖注入

    我想在大型 Java 7 独立应用程序中使用依赖注入 但我不太确定从哪里开始 我写了一个小测试应用程序 public class Main Inject MyInterface myInterface public static void
  • 如何验证PDF表单?

    我有一个用 Acrobat Professional 制作的可写 PDF 表单 我想验证数字条目是否在特定范围 a b 内 如果不是 我希望弹出一条警报 其中包含以下消息 请通过 XXX XXX XXXX 联系 Larry 以处理您的表单
  • Redis 连接因关闭事件而消失

    在我们的redis配置中 我们设置了超时 7秒 In 节点redis https github com mranney node redis我们将 Redis 连接就绪和结束事件处理为 client on ready function lo
  • CLion 无法从剪贴板粘贴正确的代码片段

    虽然在我的编程 职业生涯 中大部分时间都使用 Java 和 PHP 但我现在正在尝试更深入地学习 C 为此 我使用 CLion 作为我的 IDE 主要是因为我非常熟悉 phpStorm 和 IntelliJ IDEA 除了学习一门新语言之外
  • 有效识别字符串的一部分是否在列表/字典键中? [关闭]

    Closed 这个问题需要调试细节 help minimal reproducible example 目前不接受答案 我的列表中有很多 gt 100 000 小写字符串 其中子集可能如下所示 str list hello i am fro
  • 将Drawable转换为BLOB数据类型sqlite问题

    在这里 我附加了将图像存储在 Drawable 中并以 BLOB 数据类型传递到数据库的代码 我尝试了这个 它可以正确存储但不显示图像 Insall app db i1 new Insall app db i1 createDatabse
  • 匹配多列中的值的函数

    使用以下测试数据 df2 pd DataFrame np random randn 12 3 columns A B C thresh 3 df2 matches np where df2 A df2 B lt thresh 1 0 我创建
  • 为什么ContentObserver被多次调用?

    我有以下ContentObserver接收和写入短信的实现 但被多次调用 Code public class SMSObserverActivity extends Activity protected MyContentObserver
  • 如何在 SQL 中汇总从子级到父级的树状结构中的数据?

    我有一个查询 要求在树状结构中选择每个部门的金额 我想显示孩子们各自父母的总金额 是否可以在不使用游标的情况下将其存档在查询中 以下是要总结的数据结果集 完整的示例也可以在sqlfiddle http sqlfiddle com 4 ea0
  • 如何在 Windows Phone 应用程序中以编程方式更改堆栈面板的背景颜色?

    我只想设置背景属性堆栈面板 目前我通过以下代码设置它 statusPanel Background new SolidColorBrush Colors Cyan 但我只想设置一个十六进制值 我该怎么做 statusPanel Backgr
  • 使用 python ruamel.yaml 将内容添加到 yaml 文件时从 dict 值中删除单引号

    我有一个 yaml 文件 如下所述 test1 yaml resources name get param vname ssh keypair get param ssh keypair 现在我想在 test1 yaml 的资源下添加 te
  • 是否可以在不明确说明每个数字的情况下生成数字的联合类型?

    假设我想生成一个按比例递增的数字的联合类型 但联合中的条目数量将非常大 我可以在不显式键入联合中的每个类型的情况下生成它吗 说我有type ScaleByEight 8 16 24 32 400 我可以创建一个实用程序 可以在其中传递最小值
  • pymongo 聚合不允许解释选项

    我成功运行 result my col aggregate my pipeline allowDiskUse True 现在当我尝试时 result my col aggregate my pipeline allowDiskUse Tru
  • 链接 JavaScript (ES6) 代理对象

    我希望能够做到这一点 x where age gt 20 x calls where age gt 20 where and gt只是例子 我不知道会调用什么函数 它们可能是任何函数 并且除了填充 calls array 到目前为止 我有以
  • 获取数组中的每个第 n 项

    我有一个 HTML 元素数组 我正在检查数组中的前一个对象是否存在 如下所示 var boxes box creating the array boxes each function i going through the array va
  • 打印日文(中文)字符

    我读日语 想尝试处理一些日语文本 我使用 Python 3 尝试过 for i in range 1 65535 print chr i end 然后Python给了我很多错误 什么地方出了错 0123456789 lt gt ABCDEF