encoding - 如何在 Julia 中将 utf8 代码转换为字符?
问题描述
我正在从使用 us-utf8 编码的纯文本文件中读取字符串,在读取内容后,我想提取包含中文字符的文件名,并且中文字符以其 utf8 代码存储在文件中,例如:\x6532 \x6320.pdf 等。当然我需要将其更改为 \u 而不是 \x
但是我很困惑,因为在julia控制台中, println("\u6532\u6320.pdf") 什么的时候很容易得到对应的汉字,但是如果从文件中读取字符串,它只能显示为“ \u6532\u6320.pdf" 与存储在文本文件中的完全相同。我承认这应该是理想的行为。但是如何将 utf8 代码转换为控制台结果中的相应字符,我相信我有正确的 $LANG 设置。
我在 julia 控制台中进行了一些测试,如下所示:
println("\u6543") => 敃
println("\\" * "u6543") => \u6543
基本上第二行是我从文本文件中读取字符串时遇到的问题,我也尝试使用 StringEncoding 包解决问题,如下所示:
using StringEncoding
println(decode(Vector{UInt8}(replace(line_content_from_text,"\\x"=>"\\u"),"UTF-8"))
但我仍然得到类似\u6543的东西。
解决方案
适合你parse
的情况吗?
julia> s = "u6543"
"u6543"
julia> s_num = chop(s, head=1, tail=0)
"6543"
julia> Char(parse(UInt32, s_num, base=16))
'敃': Unicode U+6543 (category Lo: Letter, other)
相关讨论:https ://discourse.julialang.org/t/string-representation-of-hexadecimal-to-unicode-character/38289/2
推荐阅读
- python - IDLE Python - 如何在按下键时运行循环?
- excel - 关于制作日历但不知道如何填写日期的问题
- composer-php - 是否可以在安装时添加弃用警告,表明 PHP 版本要求即将更改?
- python - 使用python的递归方法中最长递增子数组
- r - 用两个因素重新排列 dplyr groupby 输出?
- javascript - 单击同一选项卡时无法隐藏选项卡内容
- php - PHP 8 - Enchant 不起作用 - Broker 返回一个空数组
- java - 从文本文件中读取数字不起作用
- qml - QML TreeView itemDelegate 不指示 isSelected
- lua - 我有一个 LUA Garry's Mod 错误,我无法解决它