在Delphi中将UTF8转换为ANSI(ISO-8859-1)

用户名

我对将UTF8字符串转换为ANSI字符串的代码有疑问。我的代码适用于元音中的重音,但是带有字母Ñ则不起作用。该代码将字符串中断。我该如何解决这个错误?

我在UTF8中具有的字符串:EDIFICIOPEÃ'ASBLANCAS
如果正确,我将在ANSI中具有的字符串:EDIFICIOPEÑASBLANCAS
我现在在ANSI中具有的字符串:EDIFICIO PE

代码在这里:

    function TFormMain.convertir_utf8_ansi(const Source: string):string;
    var
       Iterator, SourceLength, FChar, NChar: Integer;
    begin
       Result := '';
       Iterator := 0;
       SourceLength := Length(Source);
       while Iterator < SourceLength do
       begin
          Inc(Iterator);
          FChar := Ord(Source[Iterator]);
          if FChar >= $80 then
          begin
             Inc(Iterator);
             if Iterator > SourceLength then break;
             FChar := FChar and $3F;
             if (FChar and $20) <> 0 then
             begin
                FChar := FChar and $1F;
                NChar := Ord(Source[Iterator]);
                if (NChar and $C0) <> $80 then break;
                FChar := (FChar shl 6) or (NChar and $3F);
                Inc(Iterator);
                if Iterator > SourceLength then break;
             end;
             NChar := Ord(Source[Iterator]);
             if (NChar and $C0) <> $80 then break;
             Result := Result + WideChar((FChar shl 6) or (NChar and $3F));
          end
          else
             Result := Result + WideChar(FChar);
       end;
    end;

谢谢。

用户名

除了我拥有的功能外,我还解决了调用内部函数UTF8toAnsi的问题。我正在研究Delphi 2010。

这样:Utf8toAnsi(con​​vertir_utf8_ansi(source));

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

从UTF8转换为ISO 8859-5,改为获取ISO 8859-1

来自分类Dev

将SQL Server中的文本值从UTF8转换为ISO 8859-1

来自分类Dev

jQuery或Javascript:从ISO-8859-1转换为utf8

来自分类Dev

从utf8转换为iso-8859-1后未显示丹麦语字符

来自分类Dev

如何在Ruby 2.0中将UTF-8转换为ISO-8859-1?

来自分类Dev

从 UTF8 转换为 ISO-8859-1 不起作用

来自分类Dev

将iso-8859-1转换为utf-8 javascript

来自分类Dev

Javascript将字符串从utf-8转换为iso-8859-1

来自分类Dev

将ISO-8859-1转换为utf-8(øæå)

来自分类Dev

如何从C中的八进制ISO-8859-1转储utf8

来自分类Dev

字符编码问题-UTF8 / iso-8859-1

来自分类Dev

将字符从ISO-8859-1转换为Javascript中的UTF-8编码时,保持字符表示

来自分类Dev

Symfony2 + Doctrine:如何将iso8859-1转换为utf-8,反之亦然?

来自分类Dev

Ruby将字符串编码从ISO-8859-1转换为UTF-8无效

来自分类Dev

从UTF-8转换为ISO8859-1并重新转换为UTF-8后,符号会丢失

来自分类Dev

从ISO-8859-1转换大型XML为UTF-8与外部DTD实体

来自分类Dev

根据.procmailrc文件中的文本将utf8解码为ISO-8859-1邮件

来自分类Dev

为什么在JSP上UTF8文本显示为ISO-8859-1

来自分类Dev

如何在Notepad ++中将文件的编码转换为ISO-8859-1?

来自分类Dev

如何将ISO-8859-1字符正确替换为UTF-8?

来自分类Dev

DB是iso-8859-1,使用utf8_encode字符获取错误的转换

来自分类Dev

ByteString假定为ISO-8859-1?

来自分类Dev

在ISO-8859-1中编码NSURL

来自分类Dev

ByteString假定为ISO-8859-1?

来自分类Dev

在ISO-8859-1中编码NSURL

来自分类Dev

Oracle中的NLS_CHARACTERSET WE8ISO8859P1和UTF8问题

来自分类Dev

将UTF-8转换为ISO-8859-2(抛光)

来自分类Dev

在JDBC中将Wacky latin1转换为UTF8

来自分类Dev

在ISO-8859-1中重新编码utf8..cp1250结果

Related 相关文章

  1. 1

    从UTF8转换为ISO 8859-5,改为获取ISO 8859-1

  2. 2

    将SQL Server中的文本值从UTF8转换为ISO 8859-1

  3. 3

    jQuery或Javascript:从ISO-8859-1转换为utf8

  4. 4

    从utf8转换为iso-8859-1后未显示丹麦语字符

  5. 5

    如何在Ruby 2.0中将UTF-8转换为ISO-8859-1?

  6. 6

    从 UTF8 转换为 ISO-8859-1 不起作用

  7. 7

    将iso-8859-1转换为utf-8 javascript

  8. 8

    Javascript将字符串从utf-8转换为iso-8859-1

  9. 9

    将ISO-8859-1转换为utf-8(øæå)

  10. 10

    如何从C中的八进制ISO-8859-1转储utf8

  11. 11

    字符编码问题-UTF8 / iso-8859-1

  12. 12

    将字符从ISO-8859-1转换为Javascript中的UTF-8编码时,保持字符表示

  13. 13

    Symfony2 + Doctrine:如何将iso8859-1转换为utf-8,反之亦然?

  14. 14

    Ruby将字符串编码从ISO-8859-1转换为UTF-8无效

  15. 15

    从UTF-8转换为ISO8859-1并重新转换为UTF-8后,符号会丢失

  16. 16

    从ISO-8859-1转换大型XML为UTF-8与外部DTD实体

  17. 17

    根据.procmailrc文件中的文本将utf8解码为ISO-8859-1邮件

  18. 18

    为什么在JSP上UTF8文本显示为ISO-8859-1

  19. 19

    如何在Notepad ++中将文件的编码转换为ISO-8859-1?

  20. 20

    如何将ISO-8859-1字符正确替换为UTF-8?

  21. 21

    DB是iso-8859-1,使用utf8_encode字符获取错误的转换

  22. 22

    ByteString假定为ISO-8859-1?

  23. 23

    在ISO-8859-1中编码NSURL

  24. 24

    ByteString假定为ISO-8859-1?

  25. 25

    在ISO-8859-1中编码NSURL

  26. 26

    Oracle中的NLS_CHARACTERSET WE8ISO8859P1和UTF8问题

  27. 27

    将UTF-8转换为ISO-8859-2(抛光)

  28. 28

    在JDBC中将Wacky latin1转换为UTF8

  29. 29

    在ISO-8859-1中重新编码utf8..cp1250结果

热门标签

归档