CSDN 输入Emoji颜文字乱码

文章目录

Q:

在使用CSDN MarkDown时会出现出现乱码的情况。如下

1⃣️ 和 1️⃣

这两个在Apple输入法中显示相同内容,但是后者在mardown中正常显示,前者成了乱码。

前者是中文输入法中的颜文字,后者则是control + command +space 调出的颜文字框自带文字。

经过Java编码,我们可以发现两个表情编码均是UTF-8

public class Solution {
    public static void main(String[] args) {
        System.out.println(getEncoding("1⃣️"));
        System.out.println(getEncoding("1️⃣"));
        String a = new String("1⃣️");
        String b = new String("1️⃣");
        String c = new String("1⃣️");
        System.out.println(a.hashCode());
        System.out.println(b.hashCode());
        System.out.println(c.hashCode());
        
    }
    public static String getEncoding(String str) {
        String encode = "GB2312";
        try {
            if (isEncoding(str, encode)) { // 判断是不是GB2312
                return encode;
            }
        } catch (Exception exception) {
        }
        encode = "ISO-8859-1";
        try {
            if (isEncoding(str, encode)) { // 判断是不是ISO-8859-1
                return encode;
            }
        } catch (Exception exception1) {
        }
        encode = "UTF-8";
        try {
            if (isEncoding(str, encode)) { // 判断是不是UTF-8
                return encode;
            }
        } catch (Exception exception2) {
        }
        encode = "GBK";
        try {
            if (isEncoding(str, encode)) { // 判断是不是GBK
                return encode;
            }
        } catch (Exception exception3) {
        }
        return ""; // 如果都不是,说明输入的内容不属于常见的编码格式。
    }

    public static boolean isEncoding(String str, String encode) {
        try {
            if (str.equals(new String(str.getBytes(), encode))) {
                return true;
            }
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        return false;
    }
}

但是当我们获取两个字符串的hashcode时,我们就会发现,两者的hashcode并不相同。同时,我们去转换颜文字为utf-8编码时,两者的编码也不尽相同。

1⃣️
1️⃣

综上,在markdown中使用颜文字时还是直接从颜文字框中调用较好,尽量不要从中文输入法中调用。

Solution

1.不使用中文输入法显然不现实,但是可以尝试使用第三方输入法。

2.通过 control + command + space显然太麻烦 ,我们可以讲调出颜文字的快捷键设置成单击Fn

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

  • 8
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
乱码察看器(CodeView) 版本:2.60 系统平台:Windows95/98/NT/2000 作者:董雪强 Email: [email protected] 一、简介 乱码察看器顾名思义就是用来察看各种乱码的工具软件,目前支持MIME/BASE64, Quoted-Printable,HZ和UUCode四种形式的编码和解码,通过一些特殊的算法, 本程序还可以解开部分由于字节高位被屏蔽而形成的死乱码(使用其它方式的解 码),对于EMail中比较常见的乱码,还进行了特别的处理,可以较好的解决很 多乱码情况,另外还提供了很多附加的功能,比如单键解码功能和混合乱码识别 功能,使得使用本程序解码变得非常容易和轻松,希望这个小工具能带给你方便。 二、安装 本软件为绿色软件,无需安装,只要将得到的压缩文件解开到一个目录中即可运行。 三、使用 3种使用方法: 1、在有乱码的窗口中直接按下单键解码热键(默认为F7),如果窗口中乱码能被 识别,就会有一个窗口覆盖当前的乱码窗口,您可以直接在这个窗口中阅解码后 的内容。建议您在大多数情况下使用此方式。 2、将乱码内容通过剪贴板复制到CodeView的源窗口中,然后您可以试着试用不 同的解码方式进行解码。这种方式解码将给于您更多的选择自由,并且可以使用 一些在单键解码中无法实现的解码方式(主要是其他方式解码和UUCode解码), 对于一些单键解码无法解决的乱码可以使用此方式试试。 3、首先打开选项中监视剪贴板和智能弹出功能(默认为关闭),然后可以将 CodeView最小化,这时,只要你将任何乱码复制到剪贴板中,如果能够被识别, CodeView会自动弹出,您可以选择相应的解码方法进行解码。如果上面的1,2都 不合你的要求,可以试试这个方式。 四、功能描述 支持MIME/BASE64,Quoted-Printable,HZ和UUCode四种形式的编码和解码 改进的混合乱码识别算法(多种乱码混合在一起时可以正确识别不同乱码) 单键解码功能:只要选中需要察看的乱码文本(如果不选中任何内容,则会自动全选), 然后按下预先设定的热键(默认为F7),配合改进的识别算法,可以较好的将这些乱码 转成正常的文本,并可以很方便的阅读。 自动识别BIG5码(自动将BIG5码转成GB码) 支持某些HTML对汉字进行编码造成的乱码,并可以进行单键解码和混合乱码识别 繁体中文和简体中文互相转换(win2k下使用更方便了) 实时监视剪贴板 自动解码 智能弹出 打开保存文件和文件拖放的支持 此外,还可以更改背景色及默认字体及其他一些功能。 五、版本历史 ……v2.60 新增加了某些HTML对中文进行编码所形成的乱码的识别支持 修正了程序运行时Windows无法关机的问题 修正了一些小Bug ……v2.50 这个版本没有增加新的功能,但是重新编写了所有的解码编码算法,速度得到极大提高。 ……v2.24 增加了可扩充的多语言支持 改进了乱码识别算法,可以更好的识别邮件主题中的乱码 改进了其他方式的解码,更好的识别那些被屏蔽了高位的死乱码邮件 ……v2.22 增加了打开保存文件和文件拖放的支持。 修正了GB->BIG5转换的BUG,修正了HZ码转换的BUG。 ……v2.20 增加了BIG5和GB相互转换功能,并提供了在解码时自动进行BIG5->GB功能 改进了混合乱码识别 增加了单键解码功能 ……v2.00 大幅改进了操作界面 增加了混合乱码识别功能 修正了v1.x版中监视剪贴版时的BUG。 ……v1.0 第一个发布的版本,具备了很多基本的功能。 六、一些说明 首先说明的一点就是:由于乱码的多样性,我不能保证本程序能100%的解决所有的乱码,有相当 一部分乱码是根本无法解开的(最常见的无法解开的乱码形式就是有很多?号的乱码)。 由于本程序主要是用来帮助阅读文本形式的乱码,因此对于一些经过了编码的邮件附件本程序还 不提供支持,不过您可以将这些编码后的附件保存为*.uue,然后用winzip进行解码。 关于混合乱码识别: 由于乱码的多样性,导致混合乱码识别时会有一定的误判存在,表现在原本正常的一些 内容变成了乱码,这时请只复制乱码部分,而不要包含正常的文字即可。 关于智能弹出: 由于采用了混合乱码识别,导致一些正常文本复制到剪贴板时程序也会自动弹出,这时 请将其设置为不要自动弹出,可以避免一些不必要的麻烦。 有任何意见和建议请和我联系:[email protected]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值