我不想再浪费分了,得对了,再给分吧!(会者不难)(0分)

  • 主题发起人 主题发起人 王公子
  • 开始时间 开始时间

王公子

Unregistered / Unconfirmed
GUEST, unregistred user!
我不想再浪费分了,得对了,再给分吧!(会者不难)
简体unicode和繁体unicode的对应关系
 
没有人会吗,帮我UP我也给分呀
 
up 一把, 顺便学习,很少看到楼上问问题。
 
我至今问了5个问题,只有一个解决了,所以有点没有信心
 
VB 中应该有专门的转换函数
 
to:jsxjd,能否说细说明一下
to:ligai,你只要开口就是了,俺不会亏得你的
 
因为现在我比较忙,我给你一个思路。
1.利用 WideString和String找到Unicode与GB之间的关系。
2.获得 GB简体和GB繁体或BIG5之间的关系。
3.最后将这种关系间接的转换。
(疑问:你说的简体unicode和繁体unicode我不太理解,unicode也分简体和繁体吗?)
 
to ligia:
兄弟正和我的最初的想法不谋而合(英雄所见略同[:D]!),可那样太麻烦太麻烦了
所以我想知道有没有更好的办法,如果能找到最直接的关系不是更爽,不过还
得谢谢你的关注按我的理解应有,至少GB和BIG5之间就有相应的关系,所以其
对应的UNICODE我想也应该有!
 
幫你提一下!
 
你用这个做什么呢,我觉得没有什么用处吧?
unicode的简体中文字和繁体中文字对应的关系应该和GB中的简体和繁体对应的关系差不多吧。
我觉得转换不会很麻烦,编一个小程序
自动生成一数组初始化源代码不就可以了吗!
 
我要把我的所有FORM转成繁体的呀,有无好的方法!
 
办法当然有,不过需要Money,30元奥。form用的不是unicode.
 
VB函数:


StrConv 函数


返回按指定类型转换的 Variant (String)。

语法

StrConv(string, conversion, LCID)

StrConv 函数的语法有下面的命名参数:

部分 说明
string 必要参数。要转换的字符串表达式。
conversion 必要参数。Integer。其值的和决定转换的类型。
LCID 可选的。如果与系统LocaleID不同,则为LocaleID(系统LocaleID为缺省值。)


设置值

conversion 参数的设置值为:

常数 值 说明
vbUpperCase 1 将字符串文字转成大写。
vbLowerCase 2 将字符串文字转成小写。
vbProperCase 3 将字符串中每个字的开头字母转成大写。
vbWide* 4* 将字符串中单字节字符转成双字节字符。
vbNarrow* 8* 将字符串中双字节字符转成单字节字符。
vbKatakana** 16** 将字符串中平假名字符转成片假名字符。

vbHiragana** 32** 将字符串中片假名字符转成平假名字符。
vbUnicode 64 根据系统的缺省码页将字符串转成 Unicode。
vbFromUnicode 128 将字符串由 Unicode 转成系统的缺省码页。



*应用到远东国别。

**仅应用到日本。

注意 这些常数是由 VBA 指定的。可以在程序中使用它们来替换真正的值。其中大部分是可以组合的,例如 vbUpperCase + vbWide,互斥的常数不能组合,例如 vbUnicode + vbFromUnicode。当在不适用的国别使用常数 vbWide、vbNarrow、vbKatakana,和 vbHiragana 时,就会导致运行时错误。

下面是一些一般情况下的有效分界符:Null (Chr$(0)),水平制表符 (Chr$(9)),换行 (Chr$(10)),垂直制表符 (Chr$(11)),换页 (Chr$(12)) ,回车 (Chr$(13)),空白 (SBCS) (Chr$(32))。在 DBCS中,空白的实际值会随国家/地区而不同。

说明

在把 ANSI 格式的 Byte 数组转换为字符串时,您应该使用 StrConv 函数。当您转换 Unicode 格式的这种数组时,使用赋值语句。
 
多谢各位了,我现在接到一个系统,一个星期内要交货,是POS系统,那位大吓有源程
序,我源出RMB够买,
另下下个星期开贴送分,
以上方面都不是很理想,我以前也用过VB,也用过那个STRCONV,那东东转换后
的字,在简体下可以显示繁体字体(在98下也可以,很是怪),欢迎大家继续讨论!
 
源程序当然有,但是价格恐怕就不是30元能办到的
你的目标是将所有的form转换为繁体中文(GB繁体还是big5繁体?)?
support@iligia.com
程序或代码都有。
 
我们有 丽嘉核心函数库kcharset.pas
//[GB/BIG转换]
FUNCTION FkGB2132ToBigFive(vString:STRING):STRING;
FUNCTION FkBigFiveToGB2132(vString:STRING):STRING;
//[GB简体/GB繁体转换]
FUNCTION FkGB2132JToGB2132F(vString:STRING):STRING;
FUNCTION FkGB2132FToGB2132J(vString:STRING):STRING;
//[unicode简/unicode繁转换](Delphi .dfm专用)
FUNCTION FkUnicodeJToUnicodeF(vString:STRING):STRING;
FUNCTION FkUnicodeFToUnicodeJ(vString:STRING):STRING;

(不好意思,前边可能说错了一句话 dfm用的是unicode,但form用的是自己的设定字符集)
www.iligia.com LIGIA.DDN
 
实际上,DFM文件内容是二进制数据,它的脚本是经过Delphi开发环境自动转化的,
而且Delphi VCL中的Classes库单元中提供了在二进制流中的文件DFM和它的脚本
之相互转化的过程。它们是ObjectBinaryToText和ObjectTextBinary、
ObjectResourceToText和ObjectTextToResource。
//一个星期内要交货,是POS系统,那位大吓有源程
//序,我源出RMB够买
楼上兄弟可能误会我的意思了,我是说谁有pos系统的源程序
至于那个简繁转换,我手上也有一大堆函数,但我想借此贴找出直接找出它们之间的
对应关系,因为如果是那样的话,我就可以走很少的弯路,因为我们直接看到的DFM中的
汉字是这样的 #29992#25143#26435#38480#35774#32622,现在我用widechar(#29992)可以
得到相应的简体汉字,再把其换为BIG5,然后再BIG5->unicode,最后也达到我想要的结果
,这样很是麻烦,所以我想找一下有没有捷径!
不知楼上兄弟的实现方法是怎样的,能否能否告知一二,或者是否能把源代码共享出来,
不要那么保守吗?
 
我们有直接的转换关系表。既然是误会就这样了。
 
又搞了一个上午,终于搞定了,
我是这样搞的:
把dfrm下的那些#23456等用widechar转成简体字,然后把简体转成GBK繁体,
直接把DFM中的那些unicode码表示的汉字替换成繁体,然后加上引号,结果
也可以,打开DFM时,显示也是汉字,而不是unicode码,但可以用,真怪!
西望对大家有点晕!

发分啦!
再次失望!
 
后退
顶部