为了测试程序对多语言字符的支持情况,我找来一段中文和北欧的文字,希望把这些文字上传到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 里,中文字符已经被转码的更多相关文章

  1. Mysql 的字符编码机制、中文乱码问题及解决方案【转载】

    本文转载自:http://hi.baidu.com/huabinyin/item/7f51e462df565c97c4d24929.感谢作者及相关博主.        相信很多朋友都会对字符编码敬而远 ...

  2. ubuntu字符界面怎么设置中文显示和中文输入

    在ubuntu的字符登陆界面,中文显示默认是乱码的,而且也不支持中文输入,解决方法有很多, 1)安装zhcon--解决中文显示乱码的问题. sudo apt-get install zhcon 然后c ...

  3. iOS textfield限制长度,中文占2字符,英文占1字符

    之前遇到一种情况,限制textfield长度,并且要适配多语言,做到,例如中文占2字符,英文占1字符,还有考虑其他语言,网上找了很多方法,不太合适,最后结合网上的方案,修改出了还比较适用. 首先,增加 ...

  4. 限制input输入字符数(中文2个字符,英文1个字符)

    input的maxlength可以限制input的输入的字符数,但是是字符串的长度,相当于判断str.length;然而经常会有中文字符算2个字符英文算1个字符的需求,目前只能通过编写代码来实现. & ...

  5. java面试题:如果一串字符如"aaaabbc中国1512"要分别统计英文字符的数量,中文字符的数量,和数字字符的数量,假设字符中没有中文字符、英文字符、数字字符之外的其他特殊字符。

    package com.swift; public class TotalNumber_String { public static void main(String[] args) { /* * 如 ...

  6. linux纯字符界面不支持中文

    [2017-01-17] linux纯字符界面不支持中文

  7. Ubuntu配置图形桌面LXDE和VNC、中文语言包、中文输入法

    Ubuntu配置图形桌面LXDE和VNC.中文语言包.中文输入法 http://www.lijiejie.com/ubuntu-vps-config-lxde-vnc/ LXDE是Ubuntu图形桌面 ...

  8. 速成KeePass全局自动填表登录QQ与迅雷(包括中文输入法状态时用中文用户名一键登录)

    原文:http://bbs.kafan.cn/thread-1637531-1-1.html 使用目的:1 网页和本地客户端登录一站式解决2 通过KeePss修改密码和登录更方便,可以复制粘贴,省了输 ...

  9. 如何在WindowsPhone Bing Map控件中显示必应中国中文地图、谷歌中国中文地图。

    原文:如何在WindowsPhone Bing Map控件中显示必应中国中文地图.谷歌中国中文地图. 最近正好有点业余时间,所以在做做各种地图.Bing Map控件本身就能显示必应地图,但是很遗憾微软 ...

随机推荐

  1. unity8个入门代码

    01,基本碰撞检测代码 function OnCollisionEnter(theCollision:Collision){ if(theCollision.gameObject.name==&quo ...

  2. unity DoTween使用

    先说插件获取,DoTween是一个开源的插件,它的代码托管在Github上[https://github.com/Demigiant/dotween].若只是单纯项目需要是可以去AssetStore获 ...

  3. Python爬虫实例:糗百

    看了下python爬虫用法,正则匹配过滤对应字段,这里进行最强外功:copy大法实践 一开始是直接从参考链接复制粘贴的,发现由于糗百改版导致失败,这里对新版html分析后进行了简单改进,把整理过程记录 ...

  4. [原创]zabbix工具介绍,安装及使用

    [原创]zabbix工具介绍,安装及使用 http://waringid.blog.51cto.com/65148/955939/

  5. android:各种访问权限Permission

    在Android的设计中,资源的访问或者网络连接,要得到这些服务都需要声明其访问权限,否则将无法正常工作.在Android中这样的权限有很多种,这里将各类访问权限一一罗列出来,供大家使用时参考之用. ...

  6. 你真的会用Gson吗?Gson使用指南(3)

    原文出处: 怪盗kidou 注:此系列基于Gson 2.4. 本次的主要内容: 字段过滤的几种方法 基于@Expose注解 基于版本 基于访问修饰符 基于策略(作者最常用) POJO与JSON的字段映 ...

  7. awstats日志分析

    nginx日志格式设定,去掉如下行#号 #vim /usr/local/nginx/conf/nginx.conf log_format access '$remote_addr -$remote_u ...

  8. grid - gap

    grid-gap默认还有两个参数   如果grid写默认方式,则行.列都会使用相同的单位 如果grid写两个参数,则行和列各自生效 如果grid写行方式,则仅有行生效 如果grid写列方式,则仅有列生 ...

  9. hive行转列

    一.问题 hive如何将 a ,, b , c 转化成为: a a a b b c 二.原始数据 cat row_column.txt a ,, b , c 三.解决方案 3.1 遍历每一列 3.1. ...

  10. Java通过JNI调用C++程序

    JNI是Java Native Interface的缩写,中文为JAVA本地调用.使用JNI可以很方便的用我们的Java程序调用C/C++程序.很多时候,某些功能用Java无法实现,比如说涉及到底层驱 ...