精华内容
下载资源
问答
  • 在处理第一步字符串转二进制并反转时,以为有简单现成的,结果国内看了看都不太好使(没找到),8位和16位同时处理总有点bug。前一天弄了几个小时没弄好,先干工其他的了。今早,感觉可以,一小会就搞定了,分开处理...

           几个月之前,打算写个简单的加密用于项目,总算腾出点时间。在处理第一步字符串转二进制并反转时,以为有简单现成的,结果国内看了看都不太好使(没找到),8位和16位同时处理总有点bug。前一天弄了几个小时没弄好,先干工其他的了。今早,感觉可以,一小会就搞定了,分开处理一下就好了。有需要做相关处理的,供参考。废话不多说了,直接上代码:

     1 import java.io.UnsupportedEncodingException;
     2 
     3 public class EncryptionPrepare {
     4     /*
     5      * 转为二进制
     6      */
     7     public static String toBinary(String str,String split){
     8          
     9           char[] strChar=str.toCharArray();
    10           StringBuffer tempStr=new StringBuffer();
    11           int length=strChar.length;
    12           for(int i=0;i<length;i++){
    13               tempStr.append(Integer.toBinaryString(strChar[i]));
    14               tempStr.append(split);
    15           }          
    16           return tempStr.toString();
    17         }
    18     /*
    19      * 转成中英文
    20      */
    21     public static String toNormalStr(String str){
    22         byte[] bs = new byte[str.length() / 2];
    23         int len = bs.length;
    24         if (len == 1) {
    25             bs[0] = (byte) Integer.parseInt(str.substring(0, 2), 16);
    26             try {
    27                 return new String(bs, "utf-8");
    28             } catch (UnsupportedEncodingException e) {
    29                 e.printStackTrace();
    30             }
    31         }else if (len == 2) {
    32             for (int i = 0; i < len; i++) {
    33                 bs[i] = (byte) Integer.parseInt(
    34                         str.substring(i<<1, (i<<1) + 2), 16);            
    35          }
    36 try { 37 return new String(bs, "utf-16"); 38 } catch (UnsupportedEncodingException e) { 39 e.printStackTrace(); 40 } 41 } 42 return "wrong"; 43 44 } 45 /* 46 * 获取中英文 47 */ 48 public static String getNormalStr(String str,String split){ 49 String[] tempStr = StrToStrArray(str,split); 50 StringBuffer strBuffer=new StringBuffer(); 51 int len=tempStr.length; 52 for (int i = 0; i < len; i++) { 53 strBuffer.append(toNormalStr(Integer.toHexString(Integer.parseInt(tempStr[i], 2)))); 54 } 55 return strBuffer.toString(); 56 57 } 58 /* 59 * 以不同字符分割 60 */ 61 private static String[] StrToStrArray(String str,String split) { 62 return str.split(split); 63 } 64 //测试 65 public static void main(String[] args) throws UnsupportedEncodingException { 66 System.out.println(EncryptionPrepare.toBinary("1网this测试一下jk%"," ")); 67 System.out.println(EncryptionPrepare.getNormalStr("110001 111111101010001 1110100 1101000 1101001 1110011 110110101001011 1000101111010101 100111000000000 100111000001011 1101010 1101011 100101"," ")); 68 69 } 70 }

     

    转载于:https://www.cnblogs.com/HHIngo/p/7722021.html

    展开全文
  • 图片转二进制流转换图片互 本文提供全流程,中文翻译。 Chinar 坚持将简单的生活方式,带给世人!(拥有更好的阅读体验 —— 高分辨率用户请根据需求调整网页缩放比例) Chinar —— 心分享、心创新...

    图片转二进制流转换图片互转


    本文提供全流程,中文翻译。

    Chinar 坚持将简单的生活方式,带给世人!

    (拥有更好的阅读体验 —— 高分辨率用户请根据需求调整网页缩放比例)


    Chinar —— 心分享、心创新!

    助力快速完成图片互转 string / FileStream 过程

    为新手节省宝贵的时间,避免采坑!



    全文高清图片,点击即可放大观看 (很多人竟然不知道)


    1

    Code —— 直接代码


    函数已经简化,封装好、用的时候只需要调用此函数即可

    将路径传入,即可生成图片

    至于生成到哪里,需要自己指定

    修改 Application.dataPath + "/" + "Chinar" + index + ".jpg" 此路径即可

    整个流程就是:将传入路径的图片,转为流(也可以是字符串),然后生成到另一个指定目录中
    举个栗子黑白88

        /// <summary>
        /// 解析图片,此函数仅为提供可视化测试。
        /// (打开项目,选中一个图片。就能将选中的图片写到资源目录下)
        /// 仅为新手提供一个思路
        /// </summary>
        /// <param name="path">图片的路径</param>
        private void AnalysisImage(string path)
        {
            FileStream   fs          = new FileStream(path, FileMode.Open);                                    // 使用文件流构造一个二进制读取器,元数据转为二进制值
            BinaryReader br          = new BinaryReader(fs);                                                   //二进制读取类
            byte[]       imageBuffer = new byte[br.BaseStream.Length];                                         //转为字节流
            br.Read(imageBuffer, 0, Convert.ToInt32(br.BaseStream.Length));                                    //读所有信息
            string textString = System.Convert.ToBase64String(imageBuffer);                                    //转为字符串(未使用,你可以写个Json存下来试试)
            fs.Close();                                                                                        //关
            br.Close();                                                                                        //双关
            System.IO.File.WriteAllBytes(Application.dataPath + "/" + "Chinar" + index + ".jpg", imageBuffer); //将图片写到Assets目录下,名叫Chinar+index.jpg | imageBuffer:二进制流
            index++;                                                                                           //图片下标自增,防止覆盖
            AssetDatabase.Refresh();                                                                           //刷新文件夹
        }

    支持

    May Be —— 搞开发,总有一天要做的事!


    拥有自己的服务器,无需再找攻略!

    Chinar 提供一站式教程,闭眼式创建!

    为新手节省宝贵时间,避免采坑!


    先点击领取 —— 阿里全产品优惠券 (享受最低优惠)


    1 —— 云服务器超全购买流程 (新手必备!)

    2 —— 阿里ECS云服务器自定义配置 - 购买教程(新手必备!)

    3—— Windows 服务器配置、运行、建站一条龙 !

    4 —— Linux 服务器配置、运行、建站一条龙 !



    70

    技术交流群:806091680 ! Chinar 欢迎你的加入


    END

    本博客为非营利性个人原创,除部分有明确署名的作品外,所刊登的所有作品的著作权均为本人所拥有,本人保留所有法定权利。违者必究

    对于需要复制、转载、链接和传播博客文章或内容的,请及时和本博主进行联系,留言,Email: ichinar@icloud.com

    对于经本博主明确授权和许可使用文章及内容的,使用时请注明文章或内容出处并注明网址

    展开全文
  • 支持中文的把普通字符串转二进制字符串的函数 '把普通字符串转二进制字符串 Function str2bin(varstr) str2bin="" For i=1 To Len(varstr) varchar=mid...
    支持中文的把普通字符串转成二进制字符串的函数

    '把普通字符串转成二进制字符串
    Function str2bin(varstr)
     str2bin=""
     For i=1 To Len(varstr)
       varchar=mid(varstr,i,1)
       varasc = Asc(varchar)
       If varasc<0 Then
         varasc = varasc + 65535
       End If
       If varasc>255 Then
         varlow = Left(Hex(Asc(varchar)),2)
         varhigh = right(Hex(Asc(varchar)),2)
         str2bin = str2bin & chrB("&H" & varlow) & chrB("&H" &
    varhigh)
       Else
         str2bin = str2bin & chrB(Asc(varchar))
       End If
    Next
    End Function 


    来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10294527/viewspace-124752/,如需转载,请注明出处,否则将追究法律责任。

    转载于:http://blog.itpub.net/10294527/viewspace-124752/

    展开全文
  • PHP将二进制字节流转成中文字符串

    千次阅读 2016-09-30 13:14:12
    最终是需要PHP读取二进制文件的,在读取二进制文件时碰到问题,需要将这种二进制转字符串,然后在网上找了一些资料最终确定了以下方法是可行的。 $c = dirname(__FILE__)."/idiom.dat";//含有汉字的二进制文件

    最近在开发YII2中文验证码功能,需要一种成语的验证码,然后我用C++生成了一些成语,最终产生二进制文件,按GBK编码保存,一个汉字两字节。

    最终是需要PHP读取二进制文件的,在读取二进制文件时碰到问题,需要将这种二进制转成字符串,然后在网上找了一些资料最终确定了以下方法是可行的。

    
        $c = dirname(__FILE__)."/idiom.dat";//含有汉字的二进制文件  
        $handle = fopen($c, "rb");//打开文件  
        $contents = fread($handle, 2 );//读两字节,也就是一个汉字  
        $hex = bin2hex($contents );//二进制转成16进制  
                $string='';  
                for ($i=0; $i < strlen($hex)-1; $i+=2){  
                    $string .= chr(hexdec($hex[$i].$hex[$i+1]));  
                }  
                $string = iconv("gb2312","utf-8", $string);  
    
    




    展开全文
  • 字符串转 byte[]——含中文 /** * 字符串转byte数组 * @param str * @return */ public static byte[] strTobytes(String str){ byte[] b=null,data=null; try{ b = str.getBytes("utf-8"); //data = new ...
  • 开发过程中,字符串与十六进、二进制之间的相互转换常常会用到,尤其是涉及到中文的加密时,就需要把中文转换为十六进制。下面说说具体的转换方法。1、字符串转换为十六进制主要使用 charCodeAt()方法,此方法返回一...
  • 导读: 上次的函数有误,这次的才... 把普通字符串转二进制字符串 Function str2bin(varstr) str2bin="" For i=1 To Len(varstr) varchar=mid(varstr,i,1) varasc = Asc(varchar) If varasc varasc = varasc + 65535
  • php字符串(含中文)转二进制串代码

    千次阅读 2018-05-11 09:34:03
    &lt;?php header("charset=utf-8;"); function StrToBin($str){ //1.列出每个字符 $arr = preg_split('/(?... //2.unpack字符 foreach($arr as &amp;$v){ $temp = unpack('H*'...
  • Function str2bin(varstr) str2bin="" For i=1 To Len(varstr) varchar=mid(varstr,i,1) varasc = Asc(varchar) If varasc&lt;0 Then varasc = varasc + 65535 End If If varasc&...
  • 字符串转二进制码流及解码matlab代码,可用于通信原理实验的仿真,可以将传输中文
  • PHP 中文字符进制转换

    2018-05-11 19:40:29
    字符串转化为二进制: 
  • 字符串二进制数之间的互相转换

    万次阅读 2010-06-30 20:14:00
    字符串(可含中文字符)转为二进制数的函数:ConvertStrToBin();把二进制数转换为字符串的函数:ConvertBinToStr()。 以下两个函数亦可以对包含有中文字符字符串进行处理,逆转时亦可正常转为中文。 Function ...
  • * 将字符串转换成二进制 * @param type $str * @return type */ function StrToBin($str){ //1.列出每个字符 $arr = preg_split('/(?<!^)(?!$)/u', $str); //2.unpack字符 foreach($arr as &...
  • 一,中文字符转进制原理分析 GBK编码中一个汉字由个字符组成,获取汉字字符串的方法如下 复制代码 代码如下: $string = “不要迷恋哥”; $length = strlen($string); for($i=0;$i<$length;$i++){ if(ord($...
  • 题意:中文 思路:首先要想尽可能得出最大位或,最高位应该尽量选1然后在此前提下,其它的位应该尽量选1,因此,r必须是选的。然后就从最低位开始往上遍历r,遇到0则找到能把当前这一位变成1的最大值(这个数一定是...
  • js 字符串与十六进制的转换

    千次阅读 2018-04-04 15:36:22
    由于最近做一个读卡器的二次开发,接触到了写卡和读卡开发过程中,字符串与十六进、二进制之间的相互转换常常会用到,尤其是涉及到中文的加密时,就需要把中文转换为十六进制。下面说说具体的转换方法。 1、字符串...
  • 中文编码是UNIQUE编码,即2个字节标识一个汉字;   如:我 = byte[] bs3 =new byte[]{-50,-46} = GBK编码10进制为52946。   如: String str2 = "我"; byte[] bs2 = str2.getBytes("gbk"...
  • Js字符串与十六进制的相互转换

    千次阅读 2018-06-15 16:56:07
    Js字符串与十六进制的相互转换 开发过程中,字符串与十六进、二进制之间的相互转换常常会用到,尤其是涉及到中文的加密时,就需要把中文转换为十六进制。下面说说具体的转换方法。1、字符串转换为十六进制 主要...
  • python没有二进制类型,但可以存储二进制类型的数据,就是用string字符串类型来存储二进制数据,这也没关系,因为string是以1个字节为单位的。import structa=12.34#将a变为二进制bytes=struct.pack('i',a)此时bytes...

空空如也

空空如也

1 2 3 4 5 ... 18
收藏数 356
精华内容 142
关键字:

二进制转中文字符串