- 使用 Spring Initializr 创建 Spring Boot 应用程序
- 在Spring Boot中配置Cassandra
- 在 Spring Boot 上配置 Tomcat 连接池
- 将Camel消息路由到嵌入WildFly的Artemis上
public static void test21() throws CharacterCodingException {
Charset charset = Charset.forName("utf-8");
// 获取 utf-8 编码器
CharsetEncoder charsetEncoder = charset.newEncoder();
// 获取 utf-8 解码器
CharsetDecoder charsetDecoder = charset.newDecoder();
// 后续存储的“丁香JAVA讲师”共16字节:UTF-8中,每个常见汉字占 3 个字节;每个英文占 1 个字节。
CharBuffer charBuffer = CharBuffer.allocate(16);
charBuffer.put("丁香JAVA讲师");
charBuffer.flip();
System.out.println("编码开始");
// 编码 :String->byte[],使用 utf-8 类型的编码器
ByteBuffer byteBuffer = charsetEncoder.encode(charBuffer);
for (int i = 0; i < 16; i++) { // 一个汉字占 3 个字节
System.out.print(byteBuffer.get() + "\t");
}
System.out.println("\n编码结束\n");
byteBuffer.flip();
// 解码:byte[]->String,也使用utf-8类型的编码器
System.out.println("---解码开始1---");
charBuffer = charsetDecoder.decode(byteBuffer);
System.out.println(charBuffer.toString());
System.out.println("---解码结束1---\n");
// byteBuffer 中存储的是经过 UTF-8 类型编码器编码后的字节码,但以下却是使用 gbk 类型的解码器解码,因此会出现乱码
Charset charset2 = Charset.forName("gbk");
byteBuffer.flip();
System.out.println("---解码开始2---");
charBuffer = charset2.decode(byteBuffer);
System.out.println(charBuffer.toString());
System.out.println("---解码结束2---\n");
}
编码开始
-28 -72 -127 -23 -90 -103 74 65 86 65 -24 -82 -78 -27 -72 -120
编码结束
---解码开始1---
丁香JAVA讲师
---解码结束1---
---解码开始2---
涓侀JAVA璁插笀
---解码结束2---
public static void test3() throws IOException {
FileChannel inChannel
= FileChannel.open(Paths.get("g:\\abc.txt"), StandardOpenOption.READ);
FileChannel outChannel = FileChannel.open(Paths.get("g:\\abc2.txt"),
StandardOpenOption.WRITE, StandardOpenOption.READ, StandardOpenOption.CREATE);
MappedByteBuffer inMappedBuf = inChannel.map(FileChannel.MapMode.READ_ONLY, 0, inChannel.size());
MappedByteBuffer outMappedBuf = outChannel.map(FileChannel.MapMode.READ_WRITE, 0, inChannel.size());
Charset asciiCharset = Charset.forName("iso-8859-1");
CharsetEncoder charsetEncoder = asciiCharset.newEncoder();
CharsetDecoder charsetDecoder = asciiCharset.newDecoder();
// 用 iso-8859-1 对 abc.txt 中的字符进行解码
CharBuffer decodeResult = charsetDecoder.decode(inMappedBuf);
// iso-8859-1 本身不能存储中文,因此会出现乱码
for (int i = 0; i < decodeResult.length(); i++) {
System.out.print(decodeResult.get(i) + "\t");
}
// 用 iso-8859-1 对解码后的字符,再次进行编码
ByteBuffer encodeBuffer = charsetEncoder.encode(decodeResult);
outMappedBuf.put(encodeBuffer);
inChannel.close();
outChannel.close();
}
ä ¸ é ¦ J A V A è ® ² å ¸
但 abc2.txt 中的内容是正确的。
问题情景 混淆群内的小伙伴遇到这么个问题,Mailivery 这个网站登录后,明明提交的表单(邮箱和密码也正确)、请求头等等都没问题,为啥一直重定向到登录页面呢?唉,该出手时就出手啊,我也看看咋回事
实战-行业攻防应急响应 简介: 服务器场景操作系统 Ubuntu 服务器账号密码:root/security123 分析流量包在/home/security/security.pcap 相
背景 最近公司将我们之前使用的链路工具切换为了 OpenTelemetry. 我们的技术栈是: OTLP C
一 同一类的方法都用 synchronized 修饰 1 代码 package concurrent; import java.util.concurrent.TimeUnit; public c
一 简单例子 1 代码 package concurrent.threadlocal; /** * ThreadLocal测试 * * @author cakin */ public class T
1. 问题背景 问题发生在快递分拣的流程中,我尽可能将业务背景简化,让大家只关注并发问题本身。 分拣业务针对每个快递包裹都会生成一个任务,我们称它为 task。task 中有两个字段需要
实战环境 elastic search 8.5.0 + kibna 8.5.0 + springboot 3.0.2 + spring data elasticsearch 5.0.2 +
Win10下yolov8 tensorrt模型加速部署【实战】 TensorRT-Alpha 基于tensorrt+cuda c++实现模型end2end的gpu加速,支持win10、
yolov8 tensorrt模型加速部署【实战】 TensorRT-Alpha 基于tensorrt+cuda c++实现模型end2end的gpu加速,支持win10、linux,
目录如下: 为什么需要自定义授权类型? 前面介绍OAuth2.0的基础知识点时介绍过支持的4种授权类型,分别如下: 授权码模式 简化模式 客户端模式 密码模式
今天这篇文章介绍一下如何在修改密码、修改权限、注销等场景下使JWT失效。 文章的目录如下: 解决方案 JWT最大的一个优势在于它是无状态的,自身包含了认证鉴权所需要的所有信息,服务器端
前言 大家好,我是捡田螺的小男孩。(求个星标置顶) 我们日常做分页需求时,一般会用limit实现,但是当偏移量特别大的时候,查询效率就变得低下。本文将分四个方案,讨论如何优化MySQL百万数
前言 大家好,我是捡田螺的小男孩。 平时我们写代码呢,多数情况都是流水线式写代码,基本就可以实现业务逻辑了。如何在写代码中找到乐趣呢,我觉得,最好的方式就是:使用设计模式优化自己
我们先讲一些arm汇编的基础知识。(我们以armv7为例,最新iphone5s上的64位暂不讨论) 基础知识部分: 首先你介绍一下寄存器: r0-r3:用于函数参数及返回值的传递 r4-r6
一 同一类的静态方法都用 synchronized 修饰 1 代码 package concurrent; import java.util.concurrent.TimeUnit; public
DRF快速写五个接口,比你用手也快··· 实战-DRF快速写接口 开发环境 Python3.6 Pycharm专业版2021.2.3 Sqlite3 Django 2.2 djangorestfram
一 添加依赖 org.apache.thrift libthrift 0.11.0 二 编写 IDL 通过 IDL(.thrift 文件)定义数据结构、异常和接口等数据,供各种编程语言使用 nam
我正在阅读 Redis in action e-book关于semaphores的章节.这是使用redis实现信号量的python代码 def acquire_semaphore(conn, semn
自定义控件在WPF开发中是很常见的,有时候某些控件需要契合业务或者美化统一样式,这时候就需要对控件做出一些改造。 目录 按钮设置圆角
师父布置的任务,让我写一个服务练练手,搞清楚socket的原理和过程后跑了一个小demo,很有成就感,代码内容也比较清晰易懂,很有教育启发意义。 代码 ?
我是一名优秀的程序员,十分优秀!