ctrl c 中文字符到 vnc 里,中文字符已经被转码
为了测试程序对多语言字符的支持情况,我找来一段中文和北欧的文字,希望把这些文字上传到elasticsearch,并能正确显示。
首先测试了北欧文字,一切OK。
但是中文复制到 VNC 客户端(Linux)后却是问号,因为Linux本来就打不出中文,所以显示乱码我也没在意,我觉得中文的编码无非就是一坨二进制的东西,我又没有改变什么,显示问号只是 linux 无法解析而已。跑了下程序,然后到elasticsearch查询结果,中文部分依然显示的是问号。
接下来就几个想法,首先是,程序在某处应该设置charset,我却没有设置,就像 apche email 一样,邮件里显示乱码是因为没有设置 utf-8 的charset,如果是这个原因的话,很难找到解决办法。其次是,那一坨二进制肯定在哪里被转码了,使得上传到elasticsearch后的中文字符已经不是原始的“中文字符了”,但是是在哪转的码呢,也不知道,可能是在http connection上。最后,难道是和 linux 系统没有安装语言包有关,因为我的程序在我自己的mac上跑就没问题,能够正确处理多种文字。
和同事聊了下,因为多语言的问题一直在困扰着大家,在 perl 写的程序中也有非 ascii 码特殊处理的情况,所以又出现了这种问题时,大家都比较无奈。
我跑去找二叔,描述了问题,他说没有想法,要具体分析。不知什么时候,我说自己是把中文字符 ctrl + c 拷到 linux 的 terminal 的,二叔说 ctrl + c 可能会有问题。让我试试 scp 拷贝。我觉得有可能,赶紧跑回去测试,把一段中文字符 ctrl + c 拷到terminal,然后再拷出来,果然已经恢复不出来中文字符了。操作不可逆,显然,期间发生了转码,问题解决。
所以有了问题,花了一定的时间搞不定后,赶紧去问老同事。和他们描述问题会理清思路,排除极不可能的选项。
其实文字的编码,无论从哪里流到哪里,二进制应该不会变的,无论是硬件位置的改变还网络传输,即便真正发生了改变,也应该有一个 marshall, unmarshall 的过程,且此过程对我们透明,至于乱码与否,就看当前的环境是否有能力把这一坨二进制显示出来。而 clipboard 对文字进行转码,实在是大逆不道。
ctrl c 中文字符到 vnc 里,中文字符已经被转码的更多相关文章
- Mysql 的字符编码机制、中文乱码问题及解决方案【转载】
本文转载自:http://hi.baidu.com/huabinyin/item/7f51e462df565c97c4d24929.感谢作者及相关博主. 相信很多朋友都会对字符编码敬而远 ...
- ubuntu字符界面怎么设置中文显示和中文输入
在ubuntu的字符登陆界面,中文显示默认是乱码的,而且也不支持中文输入,解决方法有很多, 1)安装zhcon--解决中文显示乱码的问题. sudo apt-get install zhcon 然后c ...
- iOS textfield限制长度,中文占2字符,英文占1字符
之前遇到一种情况,限制textfield长度,并且要适配多语言,做到,例如中文占2字符,英文占1字符,还有考虑其他语言,网上找了很多方法,不太合适,最后结合网上的方案,修改出了还比较适用. 首先,增加 ...
- 限制input输入字符数(中文2个字符,英文1个字符)
input的maxlength可以限制input的输入的字符数,但是是字符串的长度,相当于判断str.length;然而经常会有中文字符算2个字符英文算1个字符的需求,目前只能通过编写代码来实现. & ...
- java面试题:如果一串字符如"aaaabbc中国1512"要分别统计英文字符的数量,中文字符的数量,和数字字符的数量,假设字符中没有中文字符、英文字符、数字字符之外的其他特殊字符。
package com.swift; public class TotalNumber_String { public static void main(String[] args) { /* * 如 ...
- linux纯字符界面不支持中文
[2017-01-17] linux纯字符界面不支持中文
- Ubuntu配置图形桌面LXDE和VNC、中文语言包、中文输入法
Ubuntu配置图形桌面LXDE和VNC.中文语言包.中文输入法 http://www.lijiejie.com/ubuntu-vps-config-lxde-vnc/ LXDE是Ubuntu图形桌面 ...
- 速成KeePass全局自动填表登录QQ与迅雷(包括中文输入法状态时用中文用户名一键登录)
原文:http://bbs.kafan.cn/thread-1637531-1-1.html 使用目的:1 网页和本地客户端登录一站式解决2 通过KeePss修改密码和登录更方便,可以复制粘贴,省了输 ...
- 如何在WindowsPhone Bing Map控件中显示必应中国中文地图、谷歌中国中文地图。
原文:如何在WindowsPhone Bing Map控件中显示必应中国中文地图.谷歌中国中文地图. 最近正好有点业余时间,所以在做做各种地图.Bing Map控件本身就能显示必应地图,但是很遗憾微软 ...
随机推荐
- JDBC(4)—Preparedstatement
功能:使用PreparedStatement操作数据表,其功能与Statement一致,但为何要使用PreparedStatement呢. 一.原因: 1.使用sql语句进行操作数据表时,需要拼写sq ...
- JAVA中String类常用方法 I
String类常用方法有: int length() -– 返回当前字符串的长度 int indexOf(int ch) -– 查找ch字符在该字符串中第一次出现的位置 int indexOf(Str ...
- p4中如何rollback/backout merge/integration
原文: http://answers.perforce.com/articles/KB_Article/How-To-Rollback-An-Integration 当我们需要将一个branch上的代 ...
- 【docker】docker部署spring boot服务,但是docker logs查看容器输出控制台日志,没有日志打印,日志未打印,docker logs不打印容器日志
如题: docker部署spring boot服务,但是docker logs查看容器输出控制台日志,没有日志打印,日志未打印,docker logs不打印容器日志 场景再现: docker部署并启动 ...
- dhtmlxtree 节点 展开收缩:新增了直接点 文本内容 也 实现了 展开收缩 功能(并记住了展开、收缩状态)
dhtmlxtree 节点 展开收缩通常情况我们按 +- 就实现了 展开收缩 功能,为了方便我们新增了直接点 文本内容 也 实现了 展开收缩 功能(并记住了展开.收缩状态) tree = new dh ...
- iframe实现Ajax文件上传效果示例
<!doctype html> <html> <head> <meta charset=utf-8> <head> <title> ...
- Python中文转拼音代码(支持全拼和首字母缩写)
本文的代码,从https://github.com/cleverdeng/pinyin.py升级得来,针对原文的代码,做了以下升级: 1 2 3 4 1.可以传入参数firstcode:如果为 ...
- EditText控件设置只读
android的文本框输入控件(EditText),有时需要设置控件为只读,最简单的方法就是在layout xml文件中设置EditText的android:editable属性值为false即可,但 ...
- ios mac 对照片进行JPEG压缩
ios mac 对照片进行JPEG压缩 1. 在iOS上可以使用 API UIImageJPEGRepresentation 对照片数据进行JPEG压缩: 我们知道iOS其实是MAC OS 的移植,那 ...
- CentOS下安装配置NFS并通过Java进行文件上传下载
1:安装NFS (1)安装 yum install nfs-utils rpcbind (2)启动rpcbind服务 systemctl restart rpcbind.service 查看服务状态 ...