zoukankan      html  css  js  c++  java
  • 文章管理列表

    字符串中水印的编码和解码

    const zeroPad = num => "00000000".slice(String(num).length) + num;
    const textToBinary = username => (
        username.split('').map(char => {
            console.log(char.charCodeAt(0))
            return zeroPad(char.charCodeAt(0).toString(2))
        }).join(' ') 
    );
    
    const binaryToZeroWidth = binary => (
        binary.split('').map((binaryNum) => {
          const num = parseInt(binaryNum, 10);
          if (num === 1) {
            return 'u200b'; // zero-width space
          } else if (num === 0) {
            return 'u200c'; // zero-width non-joiner
          }
          return 'u200d'; // zero-width joiner
        }).join('') // zero-width no-break space
    );
    
    const zeroWidthToBinary = string => (
        string.split('').map((char) => { // zero-width no-break space
          if (char === 'u200b') { // zero-width space
            return '1';
          } else if (char === 'u200c') {  // zero-width non-joiner
            return '0';
          }
          return ' '; // add single space
        }).join('')
    );
    const binaryToText = string => (
        string.split(' ').map(num =>
          String.fromCharCode(parseInt(num, 2))).join('')
    );
    
    零宽空格(zero-width space, ZWSP)用于可能需要换行处。
        Unicode: U+200B  HTML: ​
    零宽不连字 (zero-width non-joiner,ZWNJ)放在电子文本的两个字符之间,抑制本来会发生的连字,而是以这两个字符原本的字形来绘制。
        Unicode: U+200C  HTML: ‌
    零宽连字(zero-width joiner,ZWJ)是一个控制字符,放在某些需要复杂排版语言(如阿拉伯语、印地语)的两个字符之间,使得这两个本不会发生连字的字符产生了连字效果。
        Unicode: U+200D  HTML: ‍
    左至右符号(Left-to-right mark,LRM)是一种控制字符,用于计算机的双向文稿排版中。
        Unicode: U+200E  HTML: ‎ ‎ 或‎
    右至左符号(Right-to-left mark,RLM)是一种控制字符,用于计算机的双向文稿排版中。
        Unicode: U+200F  HTML: ‏ ‏ 或‏
    字节顺序标记(byte-order mark,BOM)常被用来当做标示文件是以UTF-8、UTF-16或UTF-32编码的标记。
        Unicode: U+FEFF
  • 相关阅读:
    1210 BBS admin后台管理及侧边栏筛选个人站点
    1209 BBS 登录
    更换 npm 源国内镜像 cnpm
    Linux软件管理
    apt-get / yum 软件安装源(国内)
    修改pip源为国内镜像源(加速下载)
    修改浏览器搜索引擎:网址应该如何填写
    如何根据实际问题选择一个合适的数学模型
    安装向量和矩阵运算库函数
    配置编译器(GCC和GFortran)
  • 原文地址:https://www.cnblogs.com/luguiqing/p/13875883.html
Copyright © 2011-2022 走看看