将不良文本转换为韩语

如何解决将不良文本转换为韩语

问题

我正在清理一些旧的韩语代码,我想将一些曾经是韩语的代码部分翻译成英语。但是,似乎出现了编码问题,文本不再是韩文。相反,这是一团乱码。

我想从断线转成英文翻译。

我的计划是从损坏的字符串开始,使用用于在我的计算机上解码损坏的字符串的编解码器将其编码为二进制文件,使用韩文编解码器将该二进制文件解码为韩文,然后谷歌将该韩文翻译成英文。 问题是我不知道如何将这些乱七八糟的东西解码成可读的韩语。

我的尝试

我开始编写一些 Python3 代码来翻译这个,但我不断遇到编码错误,老实说,我不知道从哪里开始。编写此代码时假设韩国人使用了 cp949 编解码器,我不确定。

fileIn = open('Broken_Korean.txt','r',encoding='cp949')
fileOut = open('Fixed_Korean.txt','w')

Lines = fileIn.readlines()
for line in Lines:
    fileOut.write(str(line.encode('cp949')))
    fileOut.write('\n')
    fileOut.write(line.encode('cp949').decode('utf-8'))

我也研究过这个问题,但我没有发现任何突破性的东西。我相信用于显示损坏字符串的编解码器是 UTF-8,但我可能会弄错。我不知道原始韩语是怎么写的,除了它是使用“多字节编码方案(MBCS)”编写的。就上下文而言,编写的程序是 LabVIEW 2015。据推测,他们在编写初始代码时使用了韩文版本。

断线的一些例子:

ÆÄÀÏ ´ëÈ­ »óÀÚ5

ÆÄÀÏ ´ëÈ­ »óÀÚ6

ÆÄÀÏ ´ëÈ­ »óÀÚ

幸运的是,一些编码错误发生在枚举上,所以我能够找到英文翻译。使用该翻译,我可以猜测古兰经可能是什么,但我不确定。我认为这可能有助于我推断使用的编解码器,但我不知道该怎么做。

À¯ÇÑ »ùÇà = 有限样本 > 유한 샘플

¿¬¼Ó »ùÇà = 连续样本 > 연속 샘플

Çϵå¿þ¾î ŸÀֿ̹¡ ÀÇÇÑ ´ÜÀÏ Æ÷ÀÎÆ® = 硬件定时单点 > 하드웨어 타이밍 단일 포인트

任何有关编码的帮助或有关如何解决此问题的提示将不胜感激!我现在很迷茫。

编辑: 这是一些损坏字符串的十六进制转储:

Broken_Korean.txt

ÆÄÀÏ ´ëÈ­ »óÀÚ5
ÆÄÀÏ ´ëÈ­ »óÀÚ6
ÆÄÀÏ ´ëÈ­ »óÀÚ
À¯ÇÑ »ùÇÃ
¿¬¼Ó »ùÇÃ
Çϵå¿þ¾î ŸÀֿ̹¡ ÀÇÇÑ ´ÜÀÏ Æ÷ÀÎÆ®
hexdump -C Broken_Korean.txt                                       
000000  c3 86 c3 84 c3 80 c3 8f 20 c2 b4 c3 ab c3 88 c2  ........ .......                                               
000010  ad 20 c2 bb c3 b3 c3 80 c3 9a 35 0d 0a c3 86 c3  . ........5.....                                               
000020  84 c3 80 c3 8f 20 c2 b4 c3 ab c3 88 c2 ad 20 c2  ..... ........ .                                               
000030  bb c3 b3 c3 80 c3 9a 36 0d 0a c3 86 c3 84 c3 80  .......6........                                               
000040  c3 8f 20 c2 b4 c3 ab c3 88 c2 ad 20 c2 bb c3 b3  .. ........ ....                                               
000050  c3 80 c3 9a 0d 0a c3 80 c2 af c3 87 c3 91 20 c2  .............. .                                               
000060  bb c3 b9 c3 87 c3 83 0d 0a c2 bf c2 ac c2 bc c3  ................                                               
000070  93 20 c2 bb c3 b9 c3 87 c3 83 0d 0a c3 87 c3 8f  . ..............                                               
000080  c2 b5 c3 a5 c2 bf c3 be c2 be c3 ae 20 c3 85 c2  ............ ...                                               
000090  b8 c3 80 c3 8c c2 b9 c3 96 c2 bf c2 a1 20 c3 80  ............. ..                                               
0000a0  c3 87 c3 87 c3 91 20 c2 b4 c3 9c c3 80 c3 8f 20  ...... ........                                                
0000b0  c3 86 c3 b7 c3 80 c3 8e c3 86 c2 ae              ............     

解决方法

十六进制转储中的数据可能被读取为 ISO-8859-1(也称为 Latin-1)并重新保存为 UTF-8。要反转,解码为 UTF-8 以获得原始 cp939 字节值,但在 Unicode 字符串中作为 Unicode 代码点。 latin1 编解码器占用前 256 个码位,用它编码会得到一个字节串,其字节值相同。然后可以应用正确的编解码器解码回 Unicode 字符串:

data = bytes.fromhex('''
c3 86 c3 84 c3 80 c3 8f 20 c2 b4 c3 ab c3 88 c2
ad 20 c2 bb c3 b3 c3 80 c3 9a 35 0d 0a c3 86 c3
84 c3 80 c3 8f 20 c2 b4 c3 ab c3 88 c2 ad 20 c2
bb c3 b3 c3 80 c3 9a 36 0d 0a c3 86 c3 84 c3 80
c3 8f 20 c2 b4 c3 ab c3 88 c2 ad 20 c2 bb c3 b3
c3 80 c3 9a 0d 0a c3 80 c2 af c3 87 c3 91 20 c2
bb c3 b9 c3 87 c3 83 0d 0a c2 bf c2 ac c2 bc c3
93 20 c2 bb c3 b9 c3 87 c3 83 0d 0a c3 87 c3 8f
c2 b5 c3 a5 c2 bf c3 be c2 be c3 ae 20 c3 85 c2
b8 c3 80 c3 8c c2 b9 c3 96 c2 bf c2 a1 20 c3 80
c3 87 c3 87 c3 91 20 c2 b4 c3 9c c3 80 c3 8f 20
c3 86 c3 b7 c3 80 c3 8e c3 86 c2 ae
''')

fixed = data.decode('utf8').encode('latin1').decode('cp949')
print(fixed)

输出:

파일 대화 상자5
파일 대화 상자6
파일 대화 상자
유한 샘플
연속 샘플
하드웨어 타이밍에 의한 단일 포인트

翻译(谷歌翻译):

File Dialog 5
File Dialog 6
File dialog
Finite sample
Continuous sample
Single point by hardware timing

如果从文件开始,将文件读取为 UTF-8,应用修复,然后将其写回(正确的)UTF-8:

with open('Broken_Korean.txt','r',encoding='utf8') as f:
    data = f.read().encode('latin1').decode('cp949')

with open('Fixed_Korean.txt','w',encoding='utf8') as f:
    f.write(data)

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


使用本地python环境可以成功执行 import pandas as pd import matplotlib.pyplot as plt # 设置字体 plt.rcParams['font.sans-serif'] = ['SimHei'] # 能正确显示负号 p
错误1:Request method ‘DELETE‘ not supported 错误还原:controller层有一个接口,访问该接口时报错:Request method ‘DELETE‘ not supported 错误原因:没有接收到前端传入的参数,修改为如下 参考 错误2:cannot r
错误1:启动docker镜像时报错:Error response from daemon: driver failed programming external connectivity on endpoint quirky_allen 解决方法:重启docker -> systemctl r
错误1:private field ‘xxx‘ is never assigned 按Altʾnter快捷键,选择第2项 参考:https://blog.csdn.net/shi_hong_fei_hei/article/details/88814070 错误2:启动时报错,不能找到主启动类 #
报错如下,通过源不能下载,最后警告pip需升级版本 Requirement already satisfied: pip in c:\users\ychen\appdata\local\programs\python\python310\lib\site-packages (22.0.4) Coll
错误1:maven打包报错 错误还原:使用maven打包项目时报错如下 [ERROR] Failed to execute goal org.apache.maven.plugins:maven-resources-plugin:3.2.0:resources (default-resources)
错误1:服务调用时报错 服务消费者模块assess通过openFeign调用服务提供者模块hires 如下为服务提供者模块hires的控制层接口 @RestController @RequestMapping("/hires") public class FeignControl
错误1:运行项目后报如下错误 解决方案 报错2:Failed to execute goal org.apache.maven.plugins:maven-compiler-plugin:3.8.1:compile (default-compile) on project sb 解决方案:在pom.
参考 错误原因 过滤器或拦截器在生效时,redisTemplate还没有注入 解决方案:在注入容器时就生效 @Component //项目运行时就注入Spring容器 public class RedisBean { @Resource private RedisTemplate<String
使用vite构建项目报错 C:\Users\ychen\work>npm init @vitejs/app @vitejs/create-app is deprecated, use npm init vite instead C:\Users\ychen\AppData\Local\npm-
参考1 参考2 解决方案 # 点击安装源 协议选择 http:// 路径填写 mirrors.aliyun.com/centos/8.3.2011/BaseOS/x86_64/os URL类型 软件库URL 其他路径 # 版本 7 mirrors.aliyun.com/centos/7/os/x86
报错1 [root@slave1 data_mocker]# kafka-console-consumer.sh --bootstrap-server slave1:9092 --topic topic_db [2023-12-19 18:31:12,770] WARN [Consumer clie
错误1 # 重写数据 hive (edu)> insert overwrite table dwd_trade_cart_add_inc > select data.id, > data.user_id, > data.course_id, > date_format(
错误1 hive (edu)> insert into huanhuan values(1,'haoge'); Query ID = root_20240110071417_fe1517ad-3607-41f4-bdcf-d00b98ac443e Total jobs = 1
报错1:执行到如下就不执行了,没有显示Successfully registered new MBean. [root@slave1 bin]# /usr/local/software/flume-1.9.0/bin/flume-ng agent -n a1 -c /usr/local/softwa
虚拟及没有启动任何服务器查看jps会显示jps,如果没有显示任何东西 [root@slave2 ~]# jps 9647 Jps 解决方案 # 进入/tmp查看 [root@slave1 dfs]# cd /tmp [root@slave1 tmp]# ll 总用量 48 drwxr-xr-x. 2
报错1 hive> show databases; OK Failed with exception java.io.IOException:java.lang.RuntimeException: Error in configuring object Time taken: 0.474 se
报错1 [root@localhost ~]# vim -bash: vim: 未找到命令 安装vim yum -y install vim* # 查看是否安装成功 [root@hadoop01 hadoop]# rpm -qa |grep vim vim-X11-7.4.629-8.el7_9.x
修改hadoop配置 vi /usr/local/software/hadoop-2.9.2/etc/hadoop/yarn-site.xml # 添加如下 <configuration> <property> <name>yarn.nodemanager.res