encoding korean euc-kr cp949 i18n

韩语字符编码指南:了解 EUC-KR 和 CP949

通过我们的 EUC-KR 和 CP949 编码指南掌握韩语文本处理,并学习如何将遗留的韩语文本转换为现代 UTF-8。

2026-04-13

韩语字符编码指南:了解 EUC-KR 和 CP949

处理韩语(Hangul)文本需要清楚地了解韩国使用的特定编码标准。虽然 UTF-8 现在是现代 Web 和移动应用程序的通用标准,但许多遗留系统、遗留 Windows 应用程序和旧数据库仍然依赖于 EUC-KR 及其扩展 CP949

在本指南中,我们将深入探讨韩语字符编码的技术细节、它们之间的关系,以及如何有效地管理现代开发中的转换。


1. 核心标准:EUC-KR 和 CP949

韩国的数字文本主要受两种密切相关的编码标准影响。

EUC-KR(完成型标准)

EUC-KR (Extended Unix Code for Korean) 基于 KS X 1001 标准。它是一种“完成型”(Wansung)编码系统,意味着它将每个韩语音节编码为一个单一单元,而不是单独的字母(Jamo)。

  • 优点:对于最常见的 2,350 个韩语音节非常高效。
  • 缺点:它无法表示所有 11,172 个可能的韩语音节,从而导致罕见字符或名称出现问题。
  • 关键词:EUC-KR 编码解码器,EUC-KR 转 UTF-8。

CP949(Windows 扩展)

CP949 (Code Page 949) 是微软对 EUC-KR 的专有扩展。它是旧版本 Windows(韩语版)的默认编码,在遗留商业软件中仍然极其常见。

  • 重要性:CP949 通过支持所有 11,172 个可能的韩语音节,同时保持与 EUC-KR 的向后兼容性,解决了 EUC-KR 的主要局限性。
  • 关键词:CP949 编码解码器。

2. 技术对比表

编码 标准 类型 最佳用例 Unicode 兼容?
EUC-KR KS X 1001 完成型 遗留 Unix/Linux 系统
CP949 MS Windows 完成型 遗留 Windows 应用程序
UTF-8 Unicode 通用 所有现代韩语软件

3. 韩语软件开发最佳实践

过渡到 UTF-8

对于任何新的韩语项目,UTF-8 是唯一合乎逻辑的选择。它原生支持所有韩语音节、古韩语字符和全球表情符号,没有区域编码的局限性。

  • 建议:始终对代码文件和 Web 内容使用 UTF-8(不带 BOM)。

标准化(NFC 与 NFD)

在处理韩语文本时,正确处理 Unicode 标准化至关重要。

  • NFC (Canonical Composition):韩语字符存储为预组合音节(例如 '한')。这是 Web、Windows 和 Linux 的标准。
  • NFD (Canonical Decomposition):韩语字符分解为单独的字母(Jamo)(例如 'ㅎ', 'ㅏ', 'ㄴ')。这主要用于 macOS 文件系统。
  • 重要性:除非您的系统具有“标准化意识”,否则在 NFC 中搜索“한”将无法在 NFD 中找到“한”。

4. FAQ:常见问题解答

问:为什么韩语字符在我的应用程序中显示为乱码?

:这通常发生在以 UTF-8 方式读取 EUC-KRCP949 文件时。要修复此问题,您必须显式使用正确的韩语编码解码文件,并将其重新编码为 UTF-8。

问:EUC-KR 和 CP949 有什么区别?

:CP949 是 EUC-KR 的超集。它增加了 8,000 多个字符,以支持原始 EUC-KR 标准中缺失的所有韩语音节组合。

问:如何检测文件是 EUC-KR 还是 UTF-8?

:您可以使用字节模式检测库(如 chardet)或手动检查是否存在 UTF-8 多字节序列。UTF-8 文件通常包含 BOM(字节顺序标记),尽管不建议韩语文本使用它。


5. 使用 Tool3M 掌控韩语文本

不要让遗留的韩语编码减慢您的开发速度。Tool3M 提供处理韩语文本的专业工具:

  • EUC-KR/CP949 编码与解码器:修复乱码并将遗留的韩语文件转换为现代标准。
  • 韩文标准化工具:在韩文 NFC 和 NFD 之间进行转换,实现跨平台兼容性。
  • 韩语编码检测器:即时识别任何韩语文本片段或文件的编码。

相关指南