Delphi中的字符串[三]——代码页
2021/9/16 23:07:01
本文主要是介绍Delphi中的字符串[三]——代码页,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
代码页即为字符集编码,也称为"内码表"。
在Unicode出现以前,计算机依靠不同的代码页来显示不同的语言。我们最常用的代码页有两个:936 简体中文和437 英文。
Delphi中可以为AnsiString指定代码页。
type TStr = type AnsiString(936); var S: TStr;
这样我们就定义了一个代码页是936的字符串S。
显然,同一个字码在不同的代码页中很可能代表不同的字符。来看下面这个例子:
type TStr1 = type AnsiString(437); TStr2 = type AnsiString(936); var s1: TStr1; s2: TStr2; begin s1:= '══'; SetLength(s2,2); Move(s1[1],s2[1],2); writeln(s1); writeln(s2); readln; end
首先分别定义了英文代码页和简体中文代码页的字符串。然后把字符串“══”赋给s1(这是连续两个双横表格框线“═”,字符编码205(十六进制$CD),并非等号“=”)。接着给s2设定两个字节的长度,把s1第一个字符开始的两个字节的数据拷贝给它。注意这里不能用s2:= s1。由于字符串本质上是指针,如果简单地使用赋值语句的话会让s2直接指向s1所指向的数据区,这时两个字符串就完全一样了。
显示结果:
s2变成了一个中文字符:屯。
这是因为437代码页中的连续两个单字节字符到了936代码页中被看作了一个双字节字符,而“屯”的字码正好是$CDCD。
用过Free Pascal的人对这个一定不会陌生。
这篇关于Delphi中的字符串[三]——代码页的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-04数据结构与算法教程:初学者必备指南
- 2024-11-04搜索算法教程:初学者必看指南
- 2024-11-04算法八股文教程:新手入门指南
- 2024-11-04算法复杂度教程:入门与实践指南
- 2024-11-04算法高级教程:新手入门与初级提升指南
- 2024-11-04初学者的算法教程:轻松入门算法世界
- 2024-11-04算法面试教程:零基础入门与实战技巧
- 2024-11-04算法设计思路教程:新手入门详解
- 2024-11-04优先队列进阶:从入门到初步掌握
- 2024-11-04DP优化进阶:从入门到初级提升指南