pb10中如何取汉字串的首字母串

beijing2005 2005-08-03 01:04:17
在pb9中通过的一段代码可在pb10 中无法得到结果
请高手不惜赐教
...全文
268 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
qishanli2006 2006-01-24
  • 打赏
  • 举报
回复
不能帮助我,没有解决问题
wu_07 2005-08-03
  • 打赏
  • 举报
回复
将相关的字符操作函数修改为相应的末尾带a的函数

如:ASC --->ASCA

-----------------------------------------------------------
pb从版本10开始通过内部集成的方式支持Unicode。从而使pb10的程序可以在不同语言平台上处理数据,同时也可以在同一界面上展示多种语言文字。

我们先来学习学习相关的名词:

ANSI:ANSI也就是ASCII值为0-255之间的字符,当字符为ANSI时,存放于文件中占用的是一个字节。如果是非ANSI的呢,则占用两字节。

DBCS:是 Double Byte Char Systems 的缩写,即双字节字符集,也就是亚洲的字符集,完全包容ANSI。


SBCS:是 Single Byte Char Systems 的缩写, 即单字节字符集,包容ANSI。

UTF8:变动长度Unicode编码,最短 1 个字节,一个中文字符占用三个字节。

UTF16LE:双字节Unicode编码, Unicode小尾数法字节顺序(little-endian),例子FF FE (字节顺序标志BOM)41 00 42 00 43 00 。BOM是byte-order mark的缩写。

UTF16BE:双字节Unicode编码,Unicode大尾数法字节顺序(big-endian),例子FE FF (字节顺序标志BOM) 00 41 00 42 00 43。

具体的改动有:
1、PowerBuilder 10 PBLs中的源码全部采用UTF-16LE编码,而之前的版本都是采用ANSI编码。
2、pb10应用程序中输入的文本自动转化为Unicode格式,string和character数据类型只存储Unicode数据格式,并且增加或者改动了部分字符串操作函数。
3、一些涉及文件操作的函数作了修改。
4、外部函数的声明方式作了改动。
5、导入导出文件可以选择编码方式。
6、pbni、xml、Web services等的Unicode支持。


对以前程序的影响:
1、在DBCS环境下,以前用len、mid、left等字符操作函数,都需要改为相应*A的格式,
2、某Api中使用的结构中有char数组。因为此api函数需要的是ANSI格式的数据,而pb10中只存储Unicode格式,如果使用char a[n] = "中文字符"的方式,结果会是乱码。

最后我采取这种比较麻烦的方法来处理:

string a ="中文字符"
for i=1 to LENA(A)
lpData.szInfoTitle[i] = MidA(a,i)
next


不知道还有没有好方法,这种方法供大家参考。

li_d_s 2005-08-03
  • 打赏
  • 举报
回复
原来专门有个函数的,但是据说pb10里面不好用,实在不行就用数据库保存拼音编码,到时候查数据库呗(拼音编码用文件保存也行,但是查文件的速度就要慢的多了)
j9dai 2005-08-03
  • 打赏
  • 举报
回复
转述:
10支持unicode字符,解决多国语的问题,
这个升级很受伤啊
balloonman2002 2005-08-03
  • 打赏
  • 举报
回复
查看本版FAQ
beijing2005 2005-08-03
  • 打赏
  • 举报
回复
之前在pb9中的一段代码用的很好
可是转到pb10中就得不到结果
在转换区码时
转出来的数据竟然是五位数
有时是负数
怎么办?

1,076

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder 相关问题讨论
社区管理员
  • 基础类社区
  • WorldMobile
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧