如何使用java将普通英语、俄语(西里尔文)和编码俄语字符串的混合字符串转换为普通字符串

如何使用java将普通英语、俄语(西里尔文)和编码俄语字符串的混合字符串转换为普通字符串,java,Java,Lits解释了这个问题, 我有一个来自第三方API调用的字符串模式。我只是给出了API返回的字符串的示例。 前- 上面这种类型的混合字符串(它只是一个原型)是通过调用第三方API得到的,字符串的一部分是俄语,一部分是英语,另一部分是加密的。 但当我解密或转换成UTF-8类型的字符,它不工作。 这个问题的解决办法应该是这样的 Статья 1 Все люди рождаются свободными и равными в своем достоинстве и правах. Они наде

Lits解释了这个问题, 我有一个来自第三方API调用的字符串模式。我只是给出了API返回的字符串的示例。 前-

上面这种类型的混合字符串(它只是一个原型)是通过调用第三方API得到的,字符串的一部分是俄语,一部分是英语,另一部分是加密的。 但当我解密或转换成UTF-8类型的字符,它不工作。 这个问题的解决办法应该是这样的

Статья 1 Все люди рождаются свободными и равными в своем достоинстве и правах. Они наделены разумом и совестью и должны поступать в отношении друг друга в духе братства,

Article 1 All people are born free and equal in dignity and rights. They are endowed with reason and conscience and should act towards each other in a spirit of brotherhood,

анализ давид маа НТЬА А Я  НА
_еапев_еонева од.пав

我们可以用JAVA解决吗?

您需要逐个字符检查文本,确定字符是“正常”还是加密代码

StringBuilder output= new StringBuilder();
char[] chars = userText.toCharArray();

for (int index = 0; index < chars.length; index++)
{
    if ( isEncryption( chars[index] ) )
        output.append( decrypt( chars[index] ) );
    else
        output.append( chars[index] );
}

System.out.println(output.toString()); 
     
StringBuilder输出=新建StringBuilder();
char[]chars=userText.toCharArray();
for(int index=0;index
如果加密是多字符的,那么它会变得更复杂一些

StringBuilder output= new StringBuilder();
StringBuilder encrypted= new StringBuilder();
boolean isInEncrypt=false;

char[] chars = userText.toCharArray();

for (int index = 0; index < chars.length; index++)
{
    if ( isEncryption( chars[index] ) )
        {
            isInEncrypt=true;
            encrypted.append( chars[index] );
        }
    else
        {
            if ( isInEncrypt )
            {
                output.append( decrypt( encrypted.toString() ) );
                encrypted.setLength(0);
                isInEncrypt=false;
            }
            else
               output.append( chars[index] );
        }
}

if ( isInEncrypt  && encrypted.length() > 0 ) 
  output.append( decrypt( encrypted.toString() ) );
              
System.out.println(output.toString()); 
     
StringBuilder输出=新建StringBuilder();
StringBuilder encrypted=新的StringBuilder();
布尔值isInEncrypt=false;
char[]chars=userText.toCharArray();
for(int index=0;index0)
append(解密(加密的.toString());
System.out.println(output.toString());

“…某些部分是加密的。”如何加密?@KevinBoone加密技术可以是任何东西,我们不知道使用的是什么类型的加密。我们只有加密的数据,比如在2008年8月18日举行的2008 2008年8月18日日举行的2008 2008年8月18日日日举行的2008 2008年8月18日日日举行的2008 2008年8月18日日日日举行的2008 2008年8月18日日举行的2008年8月18日举行的比赛中,在2008年8月18日举行的2008年8月18日举行的2008年8月18日举行的比赛中,在2008年8月18日举行的2008年8日举行的2008年8月18日举行的比赛中,在2008年8日举行的比赛中,本月18日举行的比赛日举行的维维维月18日举行的比赛的比赛中,本月18日举行的比赛的比赛中,本月18日日举行的比赛的比赛的比赛是本月18日举行的维维维维维维维维维维维维维维维维甲甲甲甲甲甲甲的比赛的比赛的比赛的比赛的比赛的比赛的比赛的比赛的比赛的比赛的比赛是本次的比赛I don’我不知道使用什么类型的加密。那是不可能的。有许多不同的加密方式ys对信息进行加密/解密。除非您知道使用的是哪一个,否则您必须找到信息的来源,或者尝试每一个,直到它起作用。当然,它可能是来源的专有信息,如果他们不打算放弃它,那么您就无能为力。如果您得到正确的答案,您还需要解密密钥hod,您必须再次转到消息源才能获得该消息。
StringBuilder output= new StringBuilder();
StringBuilder encrypted= new StringBuilder();
boolean isInEncrypt=false;

char[] chars = userText.toCharArray();

for (int index = 0; index < chars.length; index++)
{
    if ( isEncryption( chars[index] ) )
        {
            isInEncrypt=true;
            encrypted.append( chars[index] );
        }
    else
        {
            if ( isInEncrypt )
            {
                output.append( decrypt( encrypted.toString() ) );
                encrypted.setLength(0);
                isInEncrypt=false;
            }
            else
               output.append( chars[index] );
        }
}

if ( isInEncrypt  && encrypted.length() > 0 ) 
  output.append( decrypt( encrypted.toString() ) );
              
System.out.println(output.toString());