MineDog 最近的时间轴更新
MineDog
ONLINE

MineDog

V2EX 第 221883 号会员,加入于 2017-03-20 00:08:55 +08:00
今日活跃度排名 1995
静者心多妙.
MineDog 最近回复了
@matepi #9 那是不是可以自定义一个配置名,不要让用户用 file.encoding 来指定编码集呢。
比如
String uEncoding = System.getProperty("user.file.encoding");
if(Strings.isNullOrEmpty(uEncoding)) {
System.setProperty("file.encoding",UTF8);
}else{
System.setProperty("file.encoding",uEncoding )
}
如果是 GBK ,还是有问题,换成 new String(a1, StandardCharsets.ISO_8859_1).getBytes(StandardCharsets.ISO_8859_1)应该就可以了。String.getBytes()方法也会取默认编码之前没注意到 -_-!
类似五楼,你在启动类的静态代码里写就行,保证第一时间执行
if(!Strings.isNullOrEmpty(System.getProperty("file.encoding")) {
System.setProperty("file.encoding",UTF8)
}
首先最后 base64 内部结果 byte[]->String 过程都一样,可以先不管。
剩下的就是 a1 和 new String(a1).getBytes()的区别,说白了就是编码的区别,a1 就是 byte[],没有转换成 string ,所以没有变化。
很明显发生变化的就是 new String(a1).getBytes()。你换成 new String(a1, StandardCharsets.ISO_8859_1).getBytes()应该就是相同结果了。原因就是上面你提到的,GBK 或者 utf8 编码不是一个字节,编码过程中有些非法的值会被舍弃
看起来说了很多,实际上啥也没说
47 天前
回复了 Features 创建的主题 哔哩哔哩 Bilibili 为了 KPI 真是脸都不要了
@SimonOne #65 不是在设置里,在播放界面,全屏播放以后右上角三个点里面
47 天前
回复了 Features 创建的主题 哔哩哔哩 Bilibili 为了 KPI 真是脸都不要了
@SimonOne #17 这个也有开关,应该是后台播放吧。很多人其实是有听视频需求的,比如我,晚上睡觉会听郭德纲
65 天前
回复了 jawe001 创建的主题 Java 求 Java 大佬帮忙分析下这个程序
java 语言规范中有相关描述,不过没有规定更具体场景,https://docs.oracle.com/javase/specs/jls/se8/html/jls-15.html#jls-15.21.3
70 天前
回复了 jawe001 创建的主题 Java 求 Java 大佬帮忙分析下这个程序
按我的理解,这就是编译器对 class 判断做的一个短路优化吧,我的猜测是,编译器可以在编译阶段直接确定"=="两侧值且一侧是 X.class 声明格式,如果结果为 false 时,就直接报错。
112 天前
回复了 frank1256 创建的主题 程序员 如果文件直接用 base64 编码传,会怎么样
@dangyuluo #34 不过计算方式是原本 3*8=24bit 的数据需要 4*6(base64 字符,只表示 6bit 但实际还是占用还是 8bit )表示,相当于浪费了 2bit 的空间
关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   广告投放   ·   实用小工具   ·   2456 人在线   最高记录 5497   ·     Select Language
创意工作者们的社区
World is powered by solitude
VERSION: 3.9.8.5 · 32ms · UTC 05:19 · PVG 13:19 · LAX 21:19 · JFK 00:19
Developed with CodeLauncher
♥ Do have faith in what you're doing.