微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何将转义的 unicode 字符解码为普通字符?

如何解决如何将转义的 unicode 字符解码为普通字符?

如何解码将转义的 Unicode 字符替换回字符?我已经尝试过在线 Unicode 解码器和这篇文章How to convert a string with Unicode encoding to a string of letters,但它们都不起作用。

我有如下编码的字符:

\ua6ad\ua6ad\ua6b3\ua6ae
\ua6ae\ua6b3\ua6b3\ua6ad
\ua6b2\ua6b3\ua6b3\ua6ae$\ua6ad\ua6b0\ua6ae\ua6b1$\ua6ae\ua6b2\ua6b1\ua6af

代码本身:

public class \ua6b3\ua6af\ua6b3\ua6ad
{
    public static final boolean \u200e;
    
    public \ua6b3\ua6af\ua6b3\ua6ad() {
        final boolean \u200e = \ua6b3\ua6af\ua6b3\ua6ad.\u200e;
        if (!\u200e) {
            return;
        }
    }
    
    public void \ua6b2\ua6b2\ua6b0\ua6ae() {
        final boolean \u200e = \ua6b3\ua6af\ua6b3\ua6ad.\u200e;
        if (!\u200e && !\u200e) {
            return;
        }
    }
    
    public void \ua6b2\ua6b2\ua6b1\ua6b2(final int n,final int n2) {
        final boolean \u200e = \ua6b3\ua6af\ua6b3\ua6ad.\u200e;
        if (!\u200e && !\u200e) {
            return;
        }
    }
    
    public void \ua6ad\ua6b2\ua6ae\ua6b3(final int n,final int n2,final int n3) {
        final boolean \u200e = \ua6b3\ua6af\ua6b3\ua6ad.\u200e;
        if (!\u200e && !\u200e) {
            return;
        }
    }

解决方法

这些字符似乎是 Bamum。您可以简单地阅读此文本并打印出来,例如:

public static void main(String[] args) {
    String str = "public static void \ua6b2\ua6b2\ua6b0\ua6ae() {";
    System.out.println(str);
    ꚲꚲꚰꚮ();
}

public static void ꚲꚲꚰꚮ() {
    System.out.println("it works!");
}

输出:

public static void ꚲꚲꚰꚮ() {
it works!

如果这些字符是某种substitution cipher,您可以尝试查找编码字典,但这可能是不可能的。


另见:Replacing a character in a string with another character from another string

,

看起来这是一个混淆代码。即使您将这些 un​​icode 转换为它们的符号,除非您的文本编辑器安装了该字体,否则您将无法阅读代码。
此外,名为 '\u200e' 的布尔变量不是印刷类型 unicode。请参阅此处的说明 decoding \u200e to string

班级和成员的原始名称已被替换为垃圾。您必须对原始代码进行门控才能对其进行分析。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。