dvi和vga哪个好(玩游戏dvi和hdmi哪个流畅)

  • 时间:
  • 浏览:82
  • 来源:奥一装修网

dvi和vga玩游戏哪个好

1。简介IM和其他社交应用程序的开发工作中,出现乱码的问题也很常见,例如:1)为什么IM聊天消息中的表情符号发送到后端后在MySQL数据库中会乱码; 2)文件名包含中文发送大文件聊天消息后,对方看到的文本名称乱码; 3)调用Http rest接口时,后端读取从APP端传来的中文乱码参数; 。。。对于看似乱码的问题,但不是一个或两个词就可以清楚地解释的问题,有必要从根本上理解字符集和编码原理,并知道为什么它明显优秀代码农民的基本素质。所以,我有这篇文章,希望对您有所帮助。 *推荐阅读:有关字符编码知识的详细说明,请参阅“字符编码:对ASCII,Unicode,GBK和UTF-8的快速理解”。 (本文同时发表在:http://www。52im。net/thread-2868-1-1。html)2,关于作者陆俊义:热爱制作Linux的DBA。以前曾在Public Comment Network的DBA团队中工作,主要致力于MySQL,Memcache和MMM等产品的高性能和高可用性体系结构。 个人微博:陈慧琳的良好cenaluluGithub地址:https://github。com/cenalulu3。系列文章本文是IM开发干货系列中的21篇文章。总目录如下:《 IM新闻送送》保证机制的实现(1):在线实时消息的可靠传递“” IM消息传递的保证机制的实现(2):保证离线可靠传递消息“”如何确保IM实时消息的“顺序”和“一致性”“”“”推或拉“用于IM单人和群聊中的在线状态同步? “”即时通讯群聊新闻是如此复杂,正确理解和使用MQ消息队列“”探索一种确保IM消息计时的低成本方法“” IM开发基础补充课(6):NoSQL或SQL for Databases?读够了! “ IM中“附近的人”的原则是什么?如何有效实现?IM基本补充课程(7):主流移动帐户登录方法的原理和设计思想” IM基本补充课程(8):最多历史上很流行,它能彻底理解字符的本质”(本文)4文本轮廓字符集和编码无疑是IT新手甚至各种大神的头疼。当遇到复杂的字符集,各种火星的脚本和乱码时, 本文将根据原理对字符集和编码进行简单的科学介绍,并介绍一些常见的乱码故障定位方法,以方便读者将来更轻松地定位相关问题。 在正式介绍之前,请先声明以下内容:如果您想非常准确地理解每个名词的解释,则可以阅读以下“字符编码:快速入门” ASCII,Unicode,GBK和UTF-8拼写”。 本文是一篇博主的摘要,博客作者在将其摘要并转换为易于理解的表达式后可以理解。他们将尝试解释字符集的概念,尽可能从源头使用简单明了的文本进行字符编码。诊断技巧,希望能帮助您对“乱码”问题有更深入的了解。 5,什么是文字集在介绍字符集之前,让我们了解为什么会有字符集。 我们在计算机屏幕上看到的是已实现的文本,但实际的二进制位流存储在计算机存储介质中。然后两者之间的转换规则需要统一的标准,否则将USB驱动器插入老板的计算机中,文件将出现乱码;当我们在本地打开QQ朋友上传的文件时,会出现乱码。 因此,为了实施转换标准,出现了各种字符集标准。 简单地说:字符集指定特定文本的二进制数字存储方法(编码)以及一串二进制值的字符(解码)之间的转换关系。 那么为什么会有这么多的字符集标准? 这个问题实际上很容易回答。或者为了组织本身的利益,它希望与现有标准本质上有所不同。结果,有太多的标准具有相同的效果但彼此不兼容。 说了这么多让我们看一个实际的例子。以下是单词“屌”在各种编码下的十六进制和二进制编码结果。感觉如何尴尬? 6,字符编码是什么字符集只是规则集的名称,与现实生活相对应,字符集是某种语言的名称。例如:英语,中文,日语。 为了使字符集正确编码和转码,需要三个关键元素:1)字符库:它是一个等效于所有可读或可显示字符的数据库。字符集可以显示所有代表字符的范围; 2)编码字符集:编码点用于指示字符在字体中的位置; 3)字符编码形式:编码字符集与实际存储值之间的转换关系。通常,代码点的值被直接存储为编码值。例如,ASCII中的“ A”在表中排名第65,编码后的A的值为0100 0001,即十进制数65的二进制转换结果。

vga和dvi

看到这一点,许多读者可能和我刚开始时有同样的疑问:字体表和编码字符集似乎是必不可少的。由于字体表中的每个字符都有其自己的序列号,因此请将序列号直接作为存储的内容。为什么要麻烦地通过字符编码将序列号转换为另一种存储格式? 实际上,原因是相对容易理解的:统一字体表的目的是覆盖世界上所有的字符,但是在实际使用中,您会发现实际使用的字符与整个字符相比非常低字体表。例如,中文程序很少需要日语字符,有些英语国家甚至简单的ASCII字体表都可以满足基本需求。并且如果每个字符都按序列号存储在字体表中,则每个字符需要3个字节(这里以Unicode字体为例),计算很简单。同一块硬盘可以存储1500个ASCII文章,但只能将3个字节的Unicode序列号存储500个文章。因此出现了像UTF-8这样的可变长度编码。在UTF-8编码中,最初只需要一个字节的ASCII字符,仍然只占用一个字节。像中文和日语这样的复杂字符需要2到3个字节来存储。 有关字符编码知识的详细说明,请参见:“关于字符编码的知识:对ASCII,Unicode,GBK和UTF-8的快速了解”。 7,UTF-8和Unicode的关系阅读了上面解释的两个概念之后,解释UTF-8和Unicode之间的关系相对简单。 Unicode是上述编码字符集,而UTF-8是字符编码,是Unicode常规字体的一种实现形式。 随着Internet的发展,对相同字体集的要求越来越迫切,并且Unicode标准自然应运而生。它涵盖了几乎所有可能出现在各种本国语言中的符号和单词,并将对其进行编号。有关详细信息,请参阅:Unicode百科全书简介。 Unicode的编号从0000到10FFFF,分为17个平面,每个平面都有一个字符。但是,UTF-8仅实现第一个Plane。尽管UTF-8是当今最广泛接受的字符集编码之一,但它并未涵盖整个Unicode字体库,这也导致它在某些情况下使用。带有特殊字符的难度(如下所述)。 8,UTF-8编码介绍为了以后更好地理解实际应用,在这里我们将简要介绍UTF-8编码的实现方法。即,UTF-8的物理存储与Unicode序列号的转换之间的关系。 UTF-8编码为变长编码,最小编码单位为1个字节。字节的前1-3位是描述性部分,后跟实际的序列号部分:1)如果字节的前一位是0,则表示当前字符是单字节字符,占一个字节。空间。 0(7位)之后的所有部分均表示Unicode中的序列号;这意味着当前字符是一个双字节字符,占用2个字节的空间。 110(5位)加上下一个字节(10(6位)除外)之后的所有部分均表示Unicode中的序列号。第二个字节以10开头; 3)如果字节以1110开头,则表示当前字符是三字节字符,占用3个字节的空间。 110(5位)加上最后两个字节(10(12位)除外)之后的所有部分均表示Unicode的序列号。第二和第三个字节以10开头; 4)如果字节以10开头,则表示当前字节是多字节字符的第二个字节。 10位(6位)之后的所有部分与前一部分一起构成Unicode的序列号。 每个字节的特定特征可以在下表中看到,其中“ x”代表序列号部分,每个字节中的所有x部分都缝合在一起以形成Unicode字体的序列号。如下所示。 让我们看一下从一个字节到三个字节的三个UTF-8编码示例:细心的读者可以从上面的简介中轻松得出以下规则:1)3字节UTF -8十六进制编码必须以E开头; 2)2个字节的UTF-8必须以C或D开头; 3)1字节十六进制编码的UTF-8必须以小于8的数字开头。9,看起来会出现乱码乱码是英文mojibake(由日语字符音译)。 简单地说,出现乱码是因为:编码或解码使用不同或不兼容的字符集。 与现实生活相对应:就像一个英国人在纸上写祝福来表达他的祝福(编码过程)。一位法国人得到了这篇论文,因为法语的祝福意味着伤害,所以他认为他要表达的是伤害(解码过程)。在现实生活中这是一个乱码。 与计算机科学相同:以UTF-8编码并以GBK解码的字符。因为两个字符集的字符集不同,所以相同的汉字在两个字符集的位置上也不同。 让我们看一个例子。将进行以下转换:这样我们得到了一串值,例如E5BE88E5B18C,并且在显示时,我们使用GBK解码来显示它。通过查找该表,我们得到以下信息:解码后,我们得到一个“全局电位器”错误的结果甚至更可怕的是连字符的数目已更改。 10,如何识别您最初想要表达的乱码要从乱码中获取正确的原始文本,您需要对每个字符集的编码规则有更深入的了解。但是原理很简单。这里我们以在MySQL数据库中数据处理不正确时使用的最常见的UTF-8(以GBK错误显示)为例,以说明具体的逆解和识别过程。 10。1步骤1:编码假设我们在页面上看到乱码,例如“ world pot睂”,并且我们知道我们的浏览器当前使用GBK编码。然后在第一步中,我们首先可以通过GBK将乱码编码为二进制表达式。 当然,查找表的编码效率非常低,我们还可以使用以下SQL语句直接通过MySQL客户端进行编码工作:mysql 【localhost】 {msandbox}》 selecthex(convert(’寰锅’使用gbk)); + ------------------------------------- + |十六进制(转换(使用gbk的“通用”))| + ------------------------------------- + | E5BE88E5B18C | + --- ---------------------------------- + 1行插入(0。01秒)10。2步骤2:现在确定我们得到解码的二进制字符串E5BE88E5B18C。然后我们将其逐字节拆分。 然后应用以前的UTF-8编码的介绍部分中概述的规则,不难发现6个字节的数据符合UTF-8编码规则。如果整个数据流都符合此规则,10。3步骤3:解码然后,我们可以使用UTF-8解码E5BE88E5B18C,并在出现乱码之前查看文本。 当然,我们无需查找表即可直接通过SQL获得结果:mysql 【localhost】 {msandbox}((none))》 selectconvert(使用utf8的0xE5BE88E5B18C); + -------------- ---------------------- + |转换(使用utf8的0xE5BE88E5B18C)| + ------------------ ------------------ + |很屌| + -------------------------- ---------- + 1行插入(0。00秒)11。中的表情符号字符MySQL常见的IM乱码问题。所谓的表情符号是位于\ u1F601- \ u1F64F部分中的一种Unicode字符。这显然超出了常用的UTF-8字符集\ u0000- \ uFFFF的编码范围。随着IOS和微信支持的普及,表情符号变得越来越普遍。 以下是一些常用的表情符号(通常在IM聊天软件中使用):那么表情符号字符表达将对我们通常的开发,操作和维护产生什么影响? 最常见的问题是将他保存到MySQL数据库时。一般来说,MySQL数据库的默认字符集配置为UTF-8(三个字节),而utf8mb4仅在5。5之后才受支持。很少有DBA主动将系统默认字符集更改为utf8mb4。 然后问题来了,如果您仔细阅读了上面的说明,那么这个错误就不难理解:我们尝试将Bytes字符串插入一列,并且该Bytes字符串的第一个字节为\ xF0表示这是一个四字该部分的UTF-8编码。但是,当MySQL表和列字符集配置为UTF-8时,无法存储此类字符,因此将报告错误。 那么我们如何解决这种情况? 有两种方法:1)将MySQL升级到5。6或更高版本,并将表字符集切换为utf8mb4; 2)在将内容存储到数据库中之前进行过滤,用特殊字符替换表情符号字符。对文本进行编码,然后将其存储在数据库中。从数据库中获取它或将其显示在前端后,这种特殊的文本编码将转换为表情符号显示。 我们假设第二种方法是-*-1F601- *-而不是4字节的Emoji,那么python代码的具体实现可以参考Stackoverflow上的答案。 12,参考文献【1】如何配置Python的默认字符集【2】字符编码:对ASCII,Unicode,GBK和UTF-8的快速理解【3】 Unicode中文编码表【4】 Emoji Unicode表【5】每个开发人员都应该了解编码附录:有关IM开发的更多文章【1】全面的IM开发文章:“新手入门就足够了:从头开发移动IM”“移动IM开发人员必须阅读(a):易于理解,有完整的源代码“”“键盘干dry了:和我一起用裸手开发分布式IM系统” 》》更多类似的文章。。。 【2】有关IM体系结构设计的文章:“谈论体系结构IM系统设计“对移动IM开发中的缺陷的简要描述:体系结构设计,通信协议和客户端”“一组大规模的在线用户的移动IM体系结构设计共享实践(包括详细的图形)”原始的分布式即时消息(IM)系统理论框架解决方案“从零到卓越:JD客户服务即时消息技术体系结构的演变”“蘑菇街即时消息/ IM服务器开发体系结构的选择”“ QQ 1。4亿在线用户和PPT架构演进之路,基于微信后台时间序列的海量数据冷热分层架构设计实践,微信技术总监谈弧hitecture:微信之道-大刀之剑(完整演讲),如何解读微信技术总监对话架构:微信之道-通向简单“裂变之路”:见证微信强大的后台架构从0到1的演进(I)“《 17年实践:腾讯海产品和技术方法论》”如何大规模地移动IM组消息的结尾以确保效率,实时性? “关于现代IM系统中聊天消息的同步和存储的讨论”“ IM开发的教学基础(2):如何设计用于大量图片文件的服务器端存储体系结构?”“ IM开发基础补充课程( 3):快速理解服务器数据库中读写分离的原理和实践建议“” IM开发基础补充课程(4):正确理解HTTP短连接中的cookie,会话和令牌“” WhatsApp技术实践共享:技术由32人的工程团队创建的神话“”在微信好友圈中进行1000亿访问之后的技术挑战和实践总结“”在2亿金刚用户背后:产品定位,技术架构,网络解决方案等。“” IM System MQ中间件选择:Kafka或RabbitMQ?“腾讯高级建筑师的干货摘要:阅读大型分布式系统设计各个方面的文章”例如正确理解并充分利用MQ消息队列“”微信技术共享:微信海量IM聊天消息序列号生成实践(算法原理)“”微信技术共享:微信海量IM聊天消息序列号生成实践(灾难恢复解决方案) “”“入门:大型分布式体系结构的演进历史,技术原理和最佳实践的零基础理解”“一组高度可用,可伸缩且并发的IM组聊天,单次聊天体系结构解决方案设计实践”“阿里巴巴技术共享:揭开阿里数据库技术解决方案10年变化历史的神秘面纱“”“阿里巴巴技术共享:阿里巴巴金融级数据库OceanBase的艰难成长之路”“社交软件Red Packet技术解密(1):QQ Red的全面解密分组技术解决方案-体系结构“技术实施等”“社交软件的解密红包”技术(2):解密微信使红包的技术演进从0变到1”“解密社交软件红包技术(3):微信背后的技术细节动摇了红包雨”“社交软件红包技术解密(4 ):微信红包系统如何处理高并发性“”社交软件红包技术解密(5):微信红包系统如何实现高可用性“”社交软件红包技术解密(6):存储层架构的演进实践微信红包系统“”社交软件红包技术解密(七):大量支付宝红包并行技术实践”“社交软件红包技术解密(八):微博红包技术解决方案全面解密”“社交”软件红色信封技术解密(9):谈论H的功能逻辑,灾难恢复,操作和维护,体系结构等和Q Red Envelope“”即时消息入门:一篇文章,阅读了什么是Nginx?“它可以实现IM负载平衡吗? “即时消息新手入门:对RPC技术的基本概念,原理和用途的快速理解”“ 5个主流分布式MQ消息队列的多维比较,妈妈从不担心我的技术选择”“从游击队到正规军(1):马来西亚蜂窝旅游网的IM系统体系结构的演变“从游击队到正规军(2):马来西亚蜂窝旅游网的IM客户体系结构的演变和实践总结”“ IM开发基础知识补充课程(6):数据库使用NoSQL还是SQL?读够了! 》“ Guazi IM智能客户服务系统的数据结构设计(根据现场讲座,