粘贴和复制下的字符编码

直入正题,开始:

 

比如一个简单的繁体“絲”字,从网页中拷贝(Ctrl + C)下来,然后粘贴(Ctrl + V)到简单的文本文件中,

对于用户而言,这个字都是能被始终正常显示的。

 

背后发生的事情:

1. 首先了解“絲”字的编码

    在GBK的编码系统中,该字的编码是 0xBD 0x7A

    (http://www.360doc.com/content/05/0801/15/305_4166.shtml )

    在UNICODE的编码系统中,该字的编码是 0x7D 0x72

    (http://www.nengcha.com/code/unicode/ )

    参考UTF-8对Unicode编码的书写规则,该字的编码又被变化成了

    1110 0111 1011 0101 1011 0010  即 0xE7 0xB5 0xB2

    (http://www.cppblog.com/kb/archive/2005/09/19/320.aspx )

 

2. 开始复制和粘贴

    从UTF8编码的网页中拷贝这个字,实际上这个字已经从网页编码变成了操作系统内码(Windows中文系统应该就是GBK)

    也就是从上述的Unicode的UTF8形式,转换成了GBK码

 

    这样也就意味着,如果你是粘贴到系统的一个简单文本中,那么就是GBK的“絲”;

    而粘贴并存储到一个UTF8的网页,那么就是UTF8的“絲”。

 

UTF8 Character Table list:

http://www.utf8-chartable.de/unicode-utf8-table.pl

 

  • 2
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SecureCRT是一款流行的终端仿真程序,用于管理和连接远程网络设备。在使用SecureCRT 9.5时,如果遇到复制粘贴过程中出现多余字符的问题,这可能是由以下几个原因引起的: 1. 字符编码不匹配:SecureCRT默认使用系统或终端的字符编码,如果源文本和目标环境的字符编码不同,可能会导致某些字符无法正确显示或复制。 2. 转义序列处理:在文本中可能包含控制字符或转义序列,在复制粘贴过程中,如果不正确地处理这些序列,就可能导致多出一些不可见字符。 3. 显示属性设置:检查是否启用了显示控制选项,如鼠标点击高亮或显示特殊字符,这可能会导致复制内容包含额外的标记或样式。 4. 管道或缓冲问题:复制粘贴操作可能涉及多个进程间的通信,如果这些过程之间的数据传输存在延迟或错误,就可能出现字符缺失或过多的情况。 5. 第三方插件或扩展:如果安装了额外的插件或自定义配置,它们可能会影响复制粘贴的行为。 要解决这个问题,你可以尝试以下步骤: 1. 检查字符编码设置,确保源和目标环境一致。 2. 关闭不必要的显示控制选项。 3. 清理或刷新终端缓存,确保数据传输的准确性。 4. 更新SecureCRT到最新版本,修复已知的bug。 5. 如果以上方法无效,可能需要禁用第三方工具进行排查。 如果你能提供更多关于问题的具体情况,我可以提供更精确的建议。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值