DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: tkzcol
今日帖子: 5
在线用户: 20
导航: 论坛 -> DELPHI技术 斑竹:liumazi,sephil  
作者:
男 fenglijun (delphicdwww) ★☆☆☆☆ -
普通会员
2020/9/22 17:00:36
标题:
delphi10.4.1 ios英文系统下显示中文是乱码 浏览:1495
加入我的收藏
楼主: 从数据库读取某一个字段,字段里面是中文内容,然后付给lable中的caption。
先说明一下:在ios中文系统显示完全正常,取值--显示。
但是在ios英文环境下:显示的内容就是乱码了。
----------------------------------------------
-delphi1,2,3,4(正版4.5wrmb),6,7。。。xe6
作者:
男 wang_80919 (Flying Wang) ★☆☆☆☆ -
普通会员
2020/9/22 17:01:46
1楼: 数据库 可能没有配置 正确的 文字编码。
数据库种类太多,控件也多。还是问你的 数据库控件吧。
----------------------------------------------
(C)(P)Flying Wang
作者:
男 fenglijun (delphicdwww) ★☆☆☆☆ -
普通会员
2020/9/22 17:21:29
2楼: 关键是  中文环境下 一切都正常,只是英文的ios手机出现乱码
----------------------------------------------
-delphi1,2,3,4(正版4.5wrmb),6,7。。。xe6
作者:
男 dbyoung (dbyoung) ★☆☆☆☆ -
普通会员
2020/9/22 17:32:14
3楼: 因为英文的系统中,没有中文字体。
如果你使用了哪种中文字体,请安装对应中文字体。
----------------------------------------------
武汉天气不好
作者:
男 fenglijun (delphicdwww) ★☆☆☆☆ -
普通会员
2020/9/22 17:35:17
4楼: 英文系统有中文字体,这个可以排除
----------------------------------------------
-delphi1,2,3,4(正版4.5wrmb),6,7。。。xe6
作者:
男 sail2000 (小帆工作室) ★☆☆☆☆ -
盒子活跃会员
2020/9/23 9:27:50
5楼: 1,数据库的编码;
2,有中文字体,不一定有你指定的中文字体名。。。
----------------------------------------------
delphi 是兴趣,和工作无关,即使它倒闭。又不靠它 delphi 吃饭,怕甚?
作者:
男 fenglijun (delphicdwww) ★☆☆☆☆ -
普通会员
2020/9/23 10:17:54
6楼: utf8μıàÂëÎa:
上面英文系统获得的值,大家看看怎么转换
----------------------------------------------
-delphi1,2,3,4(正版4.5wrmb),6,7。。。xe6
作者:
男 fenglijun (delphicdwww) ★☆☆☆☆ -
普通会员
2020/9/23 10:32:32
7楼: 中文系统正常,是这样的:

utf8的编码为:瓒呯骇绠$悊鍛?
原始的字符为:超级管理员

英文系统是这样的:

utf8的编码为:Â3¬¼¶Â1ÃœÃÃ-Ô±
原始的字符为:3¬¼¶1üàíÔ±

问题就是英文系统下如何把原始的字符也转换为:超级管理员
----------------------------------------------
-delphi1,2,3,4(正版4.5wrmb),6,7。。。xe6
作者:
男 pcplayer (pcplayer) ★☆☆☆☆ -
普通会员
2020/9/23 10:44:52
8楼: 如果你使用了正确的数据库控件,比如 FireDAC,如果你的数据库的 CharSet 和字段的 CharSet 使用的是 UTF8,那么,在 DBEdit 里面显示出来是没有问题的。

如果你从 DataSet.FieldByName('').AsString 拿到的是 UTF8 的编码字符串,在该字段的 OnGetText 事件里面自己转码一下也可以啊。也就是 DisplayText := UTF8Decode(Field.AsString) 类似的语句。

至于你说中文底下没问题,英文下有问题,很简单,假设你的数据库的 CharSet 设置的是 GB2312,那肯定中文底下没问题。但其它系统就难说。

所以我现在设计数据库时都选 UTF8,保证多语言支持。

另外:Delphi 10.3.3 之前的版本,数据库 UTF8 字段的支持,DBEdit, DBLabel 等等没问题,DBMemo 有问题需要自己写代码转一下。但 10.3.3 我测试这个问题已经没有了。
----------------------------------------------
-
作者:
男 sandwoo (sandwoo) ★☆☆☆☆ -
普通会员
2020/9/23 10:46:07
9楼: 试试字段类型改为nvarchar
----------------------------------------------
-
作者:
男 fenglijun (delphicdwww) ★☆☆☆☆ -
普通会员
2020/9/23 16:58:27
10楼: 楼上的提议是正确的,谢谢!
mark,
结贴。
----------------------------------------------
-delphi1,2,3,4(正版4.5wrmb),6,7。。。xe6
作者:
男 sxqwhxq (步惊云) ★☆☆☆☆ -
普通会员
2020/9/24 8:33:24
11楼: 真的解决了吗?
同样情况,在英文安卓下正常吗?
为何数据库字段就使用一般的char类型,在英文安卓下正常呢?
----------------------------------------------
-
作者:
男 fenglijun (delphicdwww) ★☆☆☆☆ -
普通会员
2020/9/25 9:40:50
12楼: 当然解决了,英文系统下对char类型是可以识别并显示的,varchar类型需要更改为nvarchar才能在英文系统下识别并正确显示。
当然,在中文系统下什么类型都是可以的。
----------------------------------------------
-delphi1,2,3,4(正版4.5wrmb),6,7。。。xe6
作者:
男 sxqwhxq (步惊云) ★☆☆☆☆ -
普通会员
2020/9/25 11:33:28
13楼: 我的意思是,用char类型存贮中文,是否存在在英文android上正常,但在ios上不正常?当然用Nvarchar存贮任何多字节字符,在任何系统下都会是正常的。
----------------------------------------------
-
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行31.25毫秒 RSS