前往Shuct.Net首页

Shudepb PB反编译专家长时间以来,为业内同类软件事实上的唯一选择.细节,彰显专业.态度,决定品质.

关于pb decompiler的搜索

关于SQL的char,varchar字段在导出时切断中文字符显示问号或乱码的问题[原创] - chengg0769 来自四川,在东莞虚度十载 - 博客频道 - CSDN.NET chengg0769 来自四川,在东莞虚度十载 PB反编译_Powerbuilder DeCompiler_PB反编译器_PB混淆器_PB加密 目录视图 摘要视图 订阅 【大声说出你的爱】CSDN社区情人节特别活动 专访李云:从通讯行业的架构师到互联网“新兵” 电子版《程序员》杂志免费领 关于SQL的char,varchar字段在导出时切断中文字符显示问号或乱码的问题[原创] 2007-09-12 20:05 2081人阅读 评论(0) 收藏 举报 sqlpowerbuilder测试文档数据库编程 http://blog.csdn.net/chengg0769 转载保留此行。勿作修改。 QQ群请加: 6539042(powerbuilder11&SQL) 最近在处理客户的FTP下来的资料,出现如题的问题 txt文本里有如下记录: 广东省某某某某某某某某某公司-IC卡,100,100 广东省某某某某某某某某公司-IC?100,100 问题,下面这行的分隔符不见了,造成数据无法导入本地SQL2000 这个字段类型是varchar(30),这是最近的文档资料,但我发现导出的资料有超过30长度的。证明这个字段现在只是修改了文档资料为30长度,而数据库必然是大于30的,只是从其它工单表里转入资料时作了切断来满足现在文档的要求,否则也不可能完整存放长度大于30的字符串(第一行)。 而这个切断就出现了问题,其实我们看到的问号,并非是英文的问号,而是半个汉字与逗号的结合造成的乱码。 所以总结一下就是:数据长度刚好30,而且英文字符的数量是奇数,并且以汉字结尾。 当然,如果是以英文结束并切断英文部分,是不会造成这个问题的;如果英文字符数量是偶数也没问题。 彻底解决方法: 这个问题的澈底解决方法是不要作切断,否则肯定会出现或多或少的问题。而至于要完整的切断一个中文,在处理效率上不现实。当然这是程序的问题了。 折衷的解决方法: 1. 本地文本替换问号为逗号,但不一定保险。因为目前除问号问题外,还出现了数据折行显示,甚至跳过几行等问题,其归根结底是中文切字造成不可见字符造成的。而且这个没什么规律。 因为我们虽然在notepad里看到的是问号"?",并且可以替换,但是编程来替换就不行,因为末字符是ascii>127的,而且你无法判断是半个字符,因为汉字就是两个半个字符组合而成,除非用我上面用黑体显示的那个规律来判断之。(与notepad里能看到问号是两码事) 2. 本地表加宽成varchar(40),导出是增加一个“A-Z”的字符,如果后面有半个字符则结合成一个字或者问号,从而不会与逗号结合。如果没有半个字符则显示出这个英文,影响也不大。 导出时选择用一条sql语句来筛选:select id,name=name+'A',price from tab_name where 1=1 我在sql2000里测试增加一个'A':IP专?3269334变成了: IP专蟌,3269334 如果末尾加英文的空格,显然比较贴切,有半个字符的显示为问号,但不吃掉逗号,而正常的记录只是多一个空格出来,完全不影响实际上使用。(推荐) select id,name=name+' ',price from tab_name where 1=1 IP专?3269334 变成了: IP专?,3269334 当然聪明的人能想到,先在末尾添加一个字符,再用left(name,len(name)-1)来处理也是可以的,因为left是基于一个完整的字符,英文算一个,汉字也算一个。 select id,name=left(name+'A ',len(name+'A')-1),price from tab_name where 1=1 (结果非常完美) 当然还有人认为不用添加一个字符,直接切掉末尾字符,当然没问题的字段也会被切掉一个,当然不可以。 3. 判断长度为30而且英文字符数为奇数,则切断末尾的半个汉字。这个方法太费劲。而且这种方法不是数据库维护人员能做到的。(简直没必要费这个劲) 4. 在导出时用sql语句把字段转换成nvarchar(30),我在sql2000里测试ok. select id,name=cast(name as nvarchar(30)),price from tab_name where 1=1 即说2,4的方法是可行的。windowxp+sql2000里我测试过。其它DBsys和OS未作测试。 //20070918续: 省公司照以上方案改进后,采用管道符号(ASCII=124)分隔。 不想出现这个错误:错误当前行中找到多列; 最后定义列的数据后发现非空白字符--没找到具体原因,看ms网站打sp3补丁即可(sp1修正的此问题) 解决了逗号问题,但我测试时仍然出现问题,什么问题呢,就是录入人员有时录入的是繁体的汉字(比如东莞录入成東莞),我把出现错误的行全部copy到一个文件里导入,在手动导入时的预览界面看到,繁体字的地方会被分隔成两行,从而报错。唉,真是好事多磨。 東(150+124) ---BIG5编码 億(131+124)---BIG5编码 可见如果按字节读,则会生出一个分隔符号来。如果要避免这个问题,可改用两个管道符号(||) 剩下繁体字的13笔资料有问题,采用双引号括起来,顺利通过。 最后明确了我要求: 1.每个文件必须要栏位的title2.文件编码:ANSI3.行分隔符:CR+LF(回车+换行)4.文本限定符:双引号 ("")5.每行分隔符号数量一致6.不能出现折行,跳行,空白行等。 //20070925 append 如果某字段在前台界面里允许多行输入。也就是说可能存在用户会输入/r,/n这些不可见字符,则如果你导出时,还是使用/r/n作行分隔符号,就会出现跳行现象。所以这是你可以使用一些不会冲突的字符作行分隔符号,比如三个分号(;;;),即可避开问题。 更多 上一篇:我的未来发展之路和我的技术准备[原创] 下一篇:2006年中国软件收入规模前100家企业名单(转自sina) 相关主题推荐 乱码 sql powerbuilder 数据库 测试 查看评论 * 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场 核心技术类目 全部主题 Java VPN Android iOS ERP IE10 Eclipse CRM JavaScript Ubuntu NFC WAP jQuery 数据库 BI HTML5 Spring Apache Hadoop .NET API HTML SDK IIS Fedora XML LBS Unity Splashtop UML components Windows Mobile Rails QEMU KDE Cassandra CloudStack FTC coremail OPhone CouchBase 云计算 iOS6 Rackspace Web App SpringSide Maemo Compuware 大数据 aptech Perl Tornado Ruby Hibernate ThinkPHP Spark HBase Pure Solr Angular Cloud Foundry Redis Scala Django Bootstrap 个人资料 chengg0769 访问:529223次 积分:8720分 排名:第430名 原创:268篇 转载:211篇 译文:0篇 评论:348条 文章搜索 文章分类 PB反编译与加密(12) IOS和安卓(9) PB与数据库(10) 网络相关(1) 搜索相关(0) 闲话扯起耍(1) 其他语言(4) 文章存档 2014年01月(1)2013年12月(2)2013年11月(2)2013年09月(1)2013年02月(1)2012年11月(1)2012年09月(1)2012年08月(6)2012年07月(1)2012年05月(3)2012年03月(4)2011年12月(2)2011年11月(2)2011年10月(9)2011年09月(6)2011年08月(11)2011年07月(2)2011年06月(4)2011年04月(3)2010年12月(1)2010年10月(2)2010年09月(8)2010年08月(1)2010年07月(8)2010年06月(17)2010年05月(2)2010年04月(2)2010年03月(4)2010年01月(1)2009年09月(8)2009年08月(5)2009年07月(8)2009年06月(8)2009年05月(16)2009年03月(2)2009年02月(7)2008年12月(2)2008年11月(4)2008年10月(5)2008年08月(1)2008年07月(2)2008年01月(12)2007年12月(29)2007年11月(7)2007年10月(4)2007年09月(20)2007年08月(55)2007年07月(176) 阅读排行 搜索引擎学习资源(作者:dongdonglang)(14661) 做代理网站最有效的4种宣传方法(admin9.com)(12215) 再谈powerbuilder程序防止破解的办法(终结篇,以后不再写这个问题)(8263) 程序员的SEO总结(7479) PowerBuilder DeCompiler(pb decompiler) Demo download(PB反编译,支持5-12)(6149) 浅谈Powerbuilder的未来和Powerbuilder使用者的未来(6140) 在一台联想3000G430 T1600笔记本上安装黑苹果(东皇v10.6.3)成功(6026) PB11.5,PB12 web项目初探(5752) 文件夹加密原理 [转](5713) powerbuilder反编译器开发-第一步:pbd结构分析和pbkiller分析(5630) 评论排行 浅谈Powerbuilder的未来和Powerbuilder使用者的未来(49) 程序员的SEO总结(32) 有关Powerbuilder的悲观论和乐观论(由郭贴引发的300多贴争辩想到的,也是很久就想秉明的一个观点)(22) Powerbuilder混淆,加密(powerbuilder防止反编译,pb混淆器,PB加壳,支持5-12) obfuscator for PowerBuilder(20) 戏说DataWindow的“移植”和“临摹”(19) 因为垄断形成,数据库市场将出现更多开源数据库(19) 免费软件模式之随想(18) PB11.5,PB12 web项目初探(15) 软件提交到国外的下载站的几点操作和想法(15) 关于对pbd反编译器的期待(11) 推荐文章 最新评论 安装两个BCB6控件SynEdit、mwEdit 0.92a的过程总结 jiduxiaozhang12345: 请问BCB6的第三方控件在哪下载啊?急求 Powershield一个疑似的BUG zhj149: 高手啊,看你的文章,感觉你玩pb已经到了极致的境界了,我自认为pb还不错,和你比起来,还是差了太多了 软件提交到国外的下载站的几点操作和想法 u012353953: 楼主在吗?有个问题请教,看到请加我QQ,谢谢。17493589 Lucene(Nutch)距离商业文本搜索引擎还有多远?(转载) koubi1986: 你好!请教一些问题:请问一下1。你是如何把nutch抓取到的二进制内容,在项目中读取的。2。nutc... 看一个商业共享软件是如何在下载站刷下载量来作弊的! u011506701: 您的判断是有误的,像我研究的刷量算法你就根本看不出来,出现的曲线图跟正常的一模一样的,附:刷量是最好... 垂直搜索引擎蜘蛛的基本解决方案(编程实例:所以推荐) gis101989: 你好,我正在写面向主题搜索引擎结合地理信息的论文,很多地方不懂,能加个扣扣吗?非常感谢你的帮助,我的... 浅谈Powerbuilder的未来和Powerbuilder使用者的未来 hosthelp: PB的最大缺点就是:(其实很简单)过时了。 服装过时就没人穿了, 电器过时就没人买了, 明星过时(过... 三岁小孩开发搜索引擎,搜索引擎白热化[原创] rongzi1987: 顶一个。先顶再看 再谈powerbuilder程序防止破解的办法(终结篇,以后不再写这个问题) hua2000: 顶顶更健康正在研究反向工程 有个傻B说破解了我的软件—哈哈!黄金屋手机MP3.MP4.3GP.电影.下载系统 ljx811216: 真有这事,看看 我的未来方向 pconline/asp.net周金桥老师的aspnet 友人Blog 旧博客在sina Bluesen的语音卡开发平台 JackXu的开源语音卡框架 经验丰富的好友:杨光的专栏 蓝星际语音平台,Koodoo语言 Lucene改造者-yuetiantian 西部.阿呆's blog manesking:全文检索c/c fullfocus研究lucene,nutch 黄国酬的博客 把“天轰穿”的asp.net 雨松.安卓