首页 > 其他分享 >byte转string再转回为有损过程

byte转string再转回为有损过程

时间:2023-07-03 11:45:51浏览次数:38  
标签:return string val strString dst dp byte 有损

private class HostRemoveResponseModifier implements Modifier {

protected String getHost() {
return url;
}

@Override
public byte[] mod(byte[] origin) {
String strString = new String(origin);
String target = getHost() + ":" + portRemote;
boolean textContentType = false;
if(-1!=strString.indexOf(target)) {
strString = strString.replace(target, "");
textContentType = true;
}
target = getHost();
if(-1!=strString.indexOf(target)) {
strString = strString.replace(target, "");
textContentType = true;
}

/**
* string来回转是有损的,字符串替换本身有一定风险
* 所以如果不用替换就返回origin,对于非text类型,必须返回原来二进制
*/
if(textContentType)
return strString.getBytes();
else {
return origin;
}
}
}

 

private static byte[] encodeUTF8(byte coder, byte[] val, boolean doReplace) {
if (coder == UTF16)
return encodeUTF8_UTF16(val, doReplace);

if (!hasNegatives(val, 0, val.length))
return Arrays.copyOf(val, val.length);

int dp = 0;
byte[] dst = new byte[val.length << 1];
for (int sp = 0; sp < val.length; sp++) {
byte c = val[sp];
if (c < 0) {
dst[dp++] = (byte)(0xc0 | ((c & 0xff) >> 6));
dst[dp++] = (byte)(0x80 | (c & 0x3f));
} else {
dst[dp++] = c;
}
}
if (dp == dst.length)
return dst;
return Arrays.copyOf(dst, dp);
}

 

标签:return,string,val,strString,dst,dp,byte,有损
From: https://www.cnblogs.com/silyvin/p/17522354.html

相关文章

  • convert string list to number list
    #stringwithintegerssepatedbyspacesstring1="12345678"print("ActualStringcontainingintegers:",string1)print("Typeofstring:",type(string1))#convertingthestringintolistofstringslist1=list(string1.s......
  • dmPython连接达梦数据库,查询含有特殊字符报错'gbk' codec can't decode byte 0xaa in
     解决方法,可以在应用连接字符串url连接属性加上local_code=1指定客户端字符编码方式。#local_code=1表示执行客户端的本地编码是UTF-8,否则默认是GBKdm_conn=dmPython.connect(user=dm_user,password=dm_password,server='localhost',port=5236,local_code=1) 参考网......
  • Java杂记————object.getClass()和object.class以及Java中的toString()方法的的区别
    不说废话,直接上干货:(注意大小写:object为对象,Object为类)1,object.getClass()它是Object类的实例方法,返回一个对象运行时的类的Class对象,换句话说,它返回的是对象具体类型的类对象。2,Object.class这是java语言的一种语法糖,用来返回一个对象所属类的Class对象(这里补充一下:Class类,......
  • Java基础复习——常用类String
    Java常用类StringString类简介String对象用于保存字符串,也就是一组字符序列字符串常量对象是用双引号括起来的字符序列,例如:"你好","12.3","boy"等字符串的字符使用Unicode字符编码,一个字符(不区分汉字还是字母)占两个字节String类较常见的构造方法Strings1=......
  • Java 基础复习——StringBuffer 和 StringBuilder
    StringBuffer和StringBuilderStringBuffer类简介java.lang.StringBuffer代表可变的字符序列,可以对字符串内容进行增删很多方法和String相同,但StringBuffer是可变长度的StringBuffer是一个容器注意:StringBuffer的直接父类是AbstractStringBuilder有属......
  • String解析及其方法
    String解析及其方法1.前言2.什么是字符串(String)3.字符串(String)的两种创建方式及其区别4.字符串(String)的方法及其部分原码解析5.字符串(String)的弊端1.前言String类代表字符串。Java程序中的所有字符串字面值(如"abc")都作为此类的实例实现。字符串是常量;它们的值......
  • 使用easy-captcha验证码出现javax. script ScriptEngine.eval(String)" because "engi
    1.问题java项目使用  ArithmeticCaptcha  验证码,出现javax.scriptScriptEngine.eval(String)"because"engine"isnulArithmeticCaptchacaptcha=newArithmeticCaptcha(111,36);<dependency><groupId>com.github.whvcse</groupId>......
  • Java数据类型转换,字符串(String)转日期(Date)
    Java类型转换,字符串(String)转日期(Date)importjava.text.ParseException;importjava.text.SimpleDateFormat;importjava.util.Date;publicclassDateTimeConversion{publicstaticvoidmain(String[]args){StringdateString="2011-07-2800:00:00......
  • 【849】R String Manipulation Functions
    ref:[R字符串]字符串长度、分割、拼接、截取、替代、匹配和大小写替换ref:RStringManipulationFunctions1.nchar()Withthehelpofthisfunction,wecancountthecharacters. Thisfunctionconsistsofacharactervectorasitsargumentwhichthenreturns......
  • 【GiraKoo】VS提示Some bytes have been replaced with the Unicode substitution cha
    【问题解决】VS提示SomebyteshavebeenreplacedwiththeUnicodesubstitutioncharacterVS提示SomebyteshavebeenreplacedwiththeUnicodesubstitutioncharacterwhileloadingfilexxxxxwithUnicode(UTF-8)encoding.Savingthefilewillnotpreservetheor......