【问题标题】:Convert from UTF-8 to Shift-JIS, in Pascal在 Pascal 中从 UTF-8 转换为 Shift-JIS
【发布时间】:2022-07-01 03:56:14
【问题描述】:

我需要 Pascal(Delphi 或 Free Pascal)函数将 UTF-8 文本(例如字符串)转换为 Shift-JIS(也例如字符串)。

对于 Shift-JIS => UTF-8,我找到了代码 which is here。现在我需要反向转换器。

我想将此代码添加到 Lazarus 库 LConvEncoding,所以它必须不使用 \'iconv\' 或 Win32 API,它必须是纯 Pascal。如果用 Pascal 重写它很容易,它可能是另一种语言的代码。

  • 这个可爱的函数有 1119 行长,尽管其中大约 1000 行是专用于表格的。您是否期望有人在单个 SO 答案的范围内为逆向咳出类似的东西?有什么东西阻止你自己尝试吗?
  • Delphi 的string 自 2009 年以来一直是UnicodeString,因此它不能保存 UTF-8 或 Shift-JIS 内容,只能保存 UTF-16。也许您正在考虑AnsiString? FreePascal的string默认还是AnsiString,除非你使用{$modeswitch UnicodeStrings}或者{$mode DelphiUnicode}

标签: delphi encoding pascal


【解决方案1】:

我找到了答案,这段代码可以从 Unicode 官方数据中得到: ftp://ftp.unicode.org/Public/MAPPINGS/OBSOLETE/EASTASIA/JIS/SHIFTJIS.TXT

该文件说明了如何获取 UTF-16 代码,接下来我必须使用 UTF8Encode() 转换 UTF-16 -> UTF-8。

【讨论】:

猜你喜欢
  • 1970-01-01
  • 2021-05-29
  • 2016-09-06
  • 2014-05-02
  • 2017-07-21
  • 1970-01-01
  • 1970-01-01
  • 2011-03-09
  • 2018-10-01
相关资源
最近更新 更多