如何修复“ LookupError:未知编码:ISO_IR 149”

时间:2019-07-24 00:52:04

标签: python dicom pydicom

我正在使用pydicom更改dicom标头。 PatientName包含韩语,因此我将PatientName修改为英语。 之后,尝试保存时将输出ISO_IR_149错误。 我在charset.py中查找了与ISO_IR_149相关的部分,但无法解决此问题。 我们如何解决这个问题? 谢谢。

"MY_LIBS": "/path/to/libs"

错误消息如下。

import pydicom
import os
import tempfile
import datetime
from pydicom.dataset import Dataset, FileDataset
suffix = '.dcm'
filename_little_endian = tempfile.NamedTemporaryFile(suffix=suffix).name
filename_big_endian = tempfile.NamedTemporaryFile(suffix=suffix).name
#print(ds.PatientSex)
ds = pydicom.filereader.dcmread("003.dcm")
ds.PatientName = "Patient1"
print(ds.PatientName)

print("Writing test file", filename_little_endian)
ds.save_as(filename_little_endian)
print("File saved.")

# Write as a different transfer syntax XXX shouldn't need this but pydicom
# 0.9.5 bug not recognizing transfer syntax
ds.file_meta.TransferSyntaxUID = pydicom.uid.ExplicitVRBigEndian
ds.is_little_endian = False
ds.is_implicit_VR = False

print("Writing test file as Big Endian Explicit VR", filename_big_endian)
ds.save_as(filename_big_endian)

# reopen the data just for checking
for filename in (filename_little_endian, filename_big_endian):
    print('Load file {} ...'.format(filename))
    ds = pydicom.dcmread(filename)
    print(ds)

    # remove the created file
    print('Remove file {} ...'.format(filename))
    os.remove(filename)

1 个答案:

答案 0 :(得分:0)

答案很简单,但可能不令人满意:DICOM不直接支持ISO_IR 149。它确实支持使用朝鲜语代码扩展技术的字符集。 DICOM中朝鲜语字符的定义术语是:“ ISO 2022 IR 149”。也许您还可以使用UTF-8(ISO_IR 192)?

请参见PS3.3, C.12.1.1.2