Delphi 将文件转换为UTF-8
我正在尝试制作一个程序来修复损坏的subtitleDelphi 将文件转换为UTF-8,delphi,unicode,utf-8,subtitle,srt,Delphi,Unicode,Utf 8,Subtitle,Srt,我正在尝试制作一个程序来修复损坏的subtitle.srt文件。在做了一些研究之后,我发现一些修复这个问题的文件的网站正在将其转换为UTF-8,比如 我使用在这个链接中找到的方法:转换从.srt文件加载的文本。许多页面建议采用这种方式进行转换。但我最终没有成功。我做错了什么 这是我的转换代码: procedure Tfrm_main.btn_convertClick(Sender: TObject); var UnicodeStr: UnicodeString; UTF8Str: Raw
.srt
文件。在做了一些研究之后,我发现一些修复这个问题的文件的网站正在将其转换为UTF-8,比如
我使用在这个链接中找到的方法:转换从.srt
文件加载的文本。许多页面建议采用这种方式进行转换。但我最终没有成功。我做错了什么
这是我的转换代码:
procedure Tfrm_main.btn_convertClick(Sender: TObject);
var
UnicodeStr: UnicodeString;
UTF8Str: RawByteString;
begin
UTF8Str := UTF8Encode(memo_source.Text);
SetCodePage(UTF8Str, 0, False);
UnicodeStr := UTF8Str;
memo_result.Text := UnicodeStr;
end;
程序运行正常(结果很奇怪,但有点不同):
下面是我试图将.srt
文件转换为UTF-8的程序的屏幕截图:
您确定源文件已损坏(无论这意味着什么),而不仅仅是使用CP1252而不是CP1256显示的某些ANSI文本吗?请将文件读入字节数组,并使用TEncoding将其转换为字符串。
memo_source.Lines.LoadFromFile('..',TEncoding.GetEncoding(1256))代码>我想就是这样。@Armin-不客气!当问题没有被正确识别时,很难搜索到正确的东西,正如David已经提到过几次的那样。如果愿意,请自己回答。@Sertac的快速示例泄漏了编码实例。对于注释中的示例来说,这很好,但是您需要花一点时间来了解编码类。您确定源代码已损坏(无论这意味着什么)不仅仅是使用CP1252而不是CP1256显示一些ANSI文本?将文件读入字节数组,并使用TEncoding将其转换为字符串。memo_source.Lines.LoadFromFile('..',TEncoding.GetEncoding(1256))代码>我想就是这样。@Armin-不客气!当问题没有被正确识别时,很难搜索到正确的东西,正如David已经提到过几次的那样。如果愿意,请自己回答。@Sertac的快速示例泄漏了编码实例。对于注释中的示例来说,这很好,但是您需要花一点时间来了解编码类。