相关疑难解决方法(0)

检测'文本'文件类型(ANSI与UTF-8)

我在Delphi(7)中编写了一个应用程序(心理测试考试),它创建了一个标准的文本文件 - 即该文件的类型为ANSI.

有人将程序移植到Internet上运行,可能使用Java,生成的文本文件类型为UTF-8.

读取这些结果文件的程序必须读取Delphi创建的文件和通过Internet创建的文件.

虽然我可以将UTF-8文本转换为ANSI(使用狡猾命名的函数UTF8ToANSI),但我怎么能提前告诉我有哪种文件?

看到我'拥有'文件格式,我想最简单的处理方法是在文件中放置一个已知位置的标记,这将告诉我程序的来源(Delphi/Internet),但这似乎作弊.

提前致谢.

delphi utf-8 delphi-7

8
推荐指数
2
解决办法
2万
查看次数

Delphi XE - RawByteString vs AnsiString

我在这里遇到了类似的问题:Delphi XE - 我应该使用String还是AnsiString?.在确定在我的(大)库中使用ANSI字符串是正确的之后,我意识到我实际上可以使用RawByteString而不是ANSI.因为我将UNICODE字符串与ANSI字符串混合在一起,所以我的代码现在几乎没有在它们之间进行转换的地方.但是,看起来如果我使用RawByteString我摆脱了那些转换.

请让我知道您对此的看法.
谢谢.


更新:
这似乎令人失望.看起来编译器仍然从RawByteString转换为字符串.

procedure TForm1.FormCreate(Sender: TObject);
var x1, x2: RawByteString;
    s: string;
begin
  x1:= 'a';
  x2:= 'b';
  x1:= x1+ x2;
  s:= x1;              {      <------- Implicit string cast from 'RawByteString' to 'string'     }
end;
Run Code Online (Sandbox Code Playgroud)

我认为它做了一些内部工作(比如复制数据),我的代码也不会快得多,我仍然需要在我的代码中添加大量的类型转换才能使编译器静音.

delphi delphi-unicode

7
推荐指数
2
解决办法
1万
查看次数

标签 统计

delphi ×2

delphi-7 ×1

delphi-unicode ×1

utf-8 ×1