当前位置: 首页 > news >正文

做网站的外包需要分享客户信息163邮箱登录企业邮箱

做网站的外包需要分享客户信息,163邮箱登录企业邮箱,个人网页设计思路,关键词首页优化1.了解String与byte之间存在的字符编码映射规则#xff08;java为例#xff09; string与byte来回转换#xff0c;需要指定一样字符编码规则 详细原因请参考#xff1a;关于Java中bytes到String的转换-阿里云开发者社区 简单来说 #xff08;1#xff09;string和by…1.了解String与byte之间存在的字符编码映射规则java为例 string与byte来回转换需要指定一样字符编码规则 详细原因请参考关于Java中bytes到String的转换-阿里云开发者社区  简单来说 1string和byte转换之间需要指定字符编码参数Charset.defaultCharset()默认不指定的情况下使用的是utf-8编码所以一般情况下相互转换使用的都是同一种编码utf-8byte和string之间的来回转换不会出现错误。如以下代码示例 public static void main(String[] args) {byte[] original2 new byte[] {(byte) 0xef, (byte) 0x8f, (byte) 0xff};byte[] transformed2 new String(original2, Charset.defaultCharset()).getBytes(Charset.defaultCharset());System.out.println(Arrays.toString(original2));System.out.println(Arrays.toString(transformed2));System.out.println(Arrays.equals(original2, transformed2));} 2指定的字符编码不一致导致string和byte转换出现错误的场景 转换过程指定的字符编码不一致string转byte时指定了使用GBK字符编码byte转回string字符时使用了默认的utf-8。 跨机器的代码转换在A机器上string转byte时使用的默认字符编码与系统一致是GBK字符编码。 把byte数据发送给B机器处理byte转string时使用的默认字符编码与系统一致是utf-8字符编码 参考utf-8编码规范 https://www.unicode.org/versions/Unicode13.0.0/ch03.pdf  2.redis的使用场景 数据处理经过 现在有个命令需要处理set a b 处理过程是通过jedis客户端发送string或者byte数据到redisredis底层只存byte格式的数据。 具体流程 1使用jedis存string 》默认使用utf-8转byte存储 》默认读取使用utf-8解码读取 2使用jedis存string 》指定字符编码把string转byte存储 》指定字符编码从byte转string后读取数据 3使用任意字符编码把string转byte后使用jedis存byte 》与编码无关直接存储 》与编码无关直接读取 jedis指定编码规则的源码位置redis.clients.jedis.Client#set(java.lang.String, java.lang.String) public void set(String key, String value) {this.set(SafeEncoder.encode(key), SafeEncoder.encode(value));}看看encode的方法默认指定了UTF-8public static byte[] encode(String str) {try {if (str null) {throw new JedisDataException(value sent to redis cannot be null);} else {return str.getBytes(UTF-8);}} catch (UnsupportedEncodingException var2) {throw new JedisException(var2);}} 字符编码丢失的问题 参考上面的具体流程可知底层redis的存储不考虑字符编码只存最终的byte格式数据。 使用jedis客户端的过程可以指定string转换byte时使用的字符编码比如utf-8、gbk等等但是使用的什么字符编码这个不会随着数据本身存储到redis底层。可以理解在这个过程中使用的字符编码规则是什么丢失了。 总结只从底层的数据byte本身无法知道用户使用的什么字符编码把string转换成byte然后存进来的。所以在对redis底层的数据做数据迁移的过程中最好不要存在改动原始byte数据的动作。比如你如果使用了new string(byte)数据那就默认使用了utf-8的编码对它进行了转换可能导致数据转换错误。
http://www.w-s-a.com/news/779561/

相关文章:

  • 可信赖的邵阳网站建设德清做网站
  • 上传文件网站根目录wordpress博客管理
  • 网站seo优缺点网站建设公司咨
  • 网站设计需要会什么建设网站的目的以及意义
  • 怎么样推广自己的网站wordpress register_form
  • 网站公司建站凤翔网站建设
  • 网站建设协低价格的网站建设公司
  • 研发网站建设报价深圳网站建设前十名
  • 宠物发布网站模板wordpress中文免费电商模板
  • 济南做网站创意服装品牌策划公司
  • 本地电脑做视频网站 外网连接不上软件商城源码
  • 足球直播网站怎么做crm系统介绍
  • 株洲网站建设联系方式东莞凤岗网站制作
  • 小纯洁网站开发如何注册域名
  • 网上做试卷的网站如何把刚做的网站被百度抓取到
  • 滕州网站建wordpress用户中心按钮不弹出
  • 清远新闻最新消息福建seo搜索引擎优化
  • 凡客建站网微信网站怎么做的
  • 网站建设费怎么写会计科目行业网站建设公司
  • 网站里的友情链接网站建设个人简历的网页
  • 佛山自助建站软件湖南seo优化推荐
  • 免费微信微网站模板下载不了优化人员配置
  • wordpress 导航网站主题画流程图的网站
  • 皮卡剧网站怎样做排名网
  • 网站开发 兼职哪个网站是做安全教育
  • 商品展示类网站怎么用群晖nas做网站
  • 长腿蜘蛛wordpresssem优化推广
  • 中国铁路建设监理协会官方网站深圳福田区怎么样
  • 互联网网站开发发展wordpress文章自定义栏目
  • 众筹网站平台建设工信部网站备案系统