怎么选择郑州网站建设wordpress怎样切换语言

diannao/2026/1/25 17:32:16/文章来源:
怎么选择郑州网站建设,wordpress怎样切换语言,为什么做网站费用贵,外贸品牌网站设计公司编码解码 1#xff1a;I/O操作 2#xff1a;内存 3#xff1a;数据库 4#xff1a;javaWeb 下面主要介绍前面两种场景#xff0c;数据库部分只要设置正确编码格式就不会有什么问题#xff0c;javaWeb场景过多需要了解URL、get、POST的编码#xff0c;servlet的解码… 编码解码 1I/O操作 2内存 3数据库 4javaWeb 下面主要介绍前面两种场景数据库部分只要设置正确编码格式就不会有什么问题javaWeb场景过多需要了解URL、get、POST的编码servlet的解码所以javaWeb场景下节LZ介绍。 I/O操作在前面LZ就提过乱码问题无非就是转码过程中编码格式的不统一产生的比如编码时采用UTF-8解码采用GBK但最根本的原因是字符到字节或者字节到字符的转换出问题了而这中情况的转换最主要的场景就是I/O操作的时候。当然I/O操作主要包括网络I/O也就是javaWeb和磁盘I/O。网络I/O下节介绍。 首先我们先看I/O的编码操作。InputStream为字节输入流的所有类的超类Reader为读取字符流的抽象类。java读取文件的方式分为按字节流读取和按字符流读取其中InputStream、Reader是这两种读取方式的超类。 按字节 我们一般都是使用InputStream.read()方法在数据流中读取字节read()每次都只读取一个字节效率非常慢我们一般都是使用read(byte[])然后保存在一个byte[]数组中最后转换为String。在我们读取文件时读取字节的编码取决于文件所使用的编码格式而在转换为String过程中也会涉及到编码的问题如果两者之间的编码格式不同可能会出现问题。例如存在一个问题test.txt编码格式为UTF-8那么通过字节流读取文件时所获得的数据流编码格式就是UTF-8而我们在转化成String过程中如果不指定编码格式则默认使用系统编码格式GBK来解码操作由于两者编码格式不一致那么在构造String过程肯定会产生乱码如下 File file new File(C:\\test.txt);InputStream input new FileInputStream(file);StringBuffer buffer new StringBuffer();byte[] bytes new byte[1024];for(int n ; (n input.read(bytes))!-1 ; ){buffer.append(new String(bytes,0,n));}System.out.println(buffer); 输出结果锘挎垜鏄?cm test.txt中的内容为我是 cm。 要想不出现乱码在构造String过程中指定编码格式使得编码解码时两者编码格式保持一致即可 buffer.append(new String(bytes,0,n,UTF-8)); 按字符 其实字符流可以看做是一种包装流它的底层还是采用字节流来读取字节然后它使用指定的编码方式将读取字节解码为字符。在java中Reader是读取字符流的超类。所以从底层上来看按字节读取文件和按字符读取没什么区别。在读取的时候字符读取每次是读取留个字节字节流每次读取一个字节。 字节字符转换 字节转换为字符一定少不了InputStreamReader。API解释如下InputStreamReader 是字节流通向字符流的桥梁它使用指定的 charset 读取字节并将其解码为字符。它使用的字符集可以由名称指定或显式给定或者可以接受平台默认的字符集。 每次调用 InputStreamReader 中的一个 read() 方法都会导致从底层输入流读取一个或多个字节。要启用从字节到字符的有效转换可以提前从底层流读取更多的字节使其超过满足当前读取操作所需的字节。API解释非常清楚InputStreamReader在底层读取文件时仍然采用字节读取读取字节后它需要根据一个指定的编码格式来解析为字符如果没有指定编码格式则采用系统默认编码格式。 String file C:\\test.txt; String charset UTF-8; // 写字符换转成字节流FileOutputStream outputStream new FileOutputStream(file); OutputStreamWriter writer new OutputStreamWriter(outputStream, charset); try { writer.write(我是 cm); } finally { writer.close(); } // 读取字节转换成字符FileInputStream inputStream new FileInputStream(file); InputStreamReader reader new InputStreamReader( inputStream, charset); StringBuffer buffer new StringBuffer(); char[] buf new char[64]; int count 0; try { while ((count reader.read(buf)) ! -1) { buffer.append(buf, 0, count); } } finally { reader.close(); }System.out.println(buffer); 内存首先我们看下面这段简单的代码 String s 我是 cm; byte[] bytes s.getBytes(); String s1 new String(bytes,GBK); String s2 new String(bytes); 在这段代码中我们看到了三处编码转换过程一次编码两次解码。先看String.getTytes(): public byte[] getBytes() {return StringCoding.encode(value, 0, value.length);} 内部调用StringCoding.encode()方法操作 static byte[] encode(char[] ca, int off, int len) {String csn Charset.defaultCharset().name();try {// use charset name encode() variant which provides caching.return encode(csn, ca, off, len);} catch (UnsupportedEncodingException x) {warnUnsupportedCharset(csn);}try {return encode(ISO-8859-1, ca, off, len);} catch (UnsupportedEncodingException x) {// If this code is hit during VM initialization, MessageUtils is// the only way we will be able to get any kind of error message.MessageUtils.err(ISO-8859-1 charset not available: x.toString());// If we can not find ISO-8859-1 (a required encoding) then things// are seriously wrong with the installation.System.exit(1);return null;}} encode(char[] paramArrayOfChar, int paramInt1, int paramInt2)方法首先调用系统的默认编码格式如果没有指定编码格式则默认使用ISO-8859-1编码格式进行编码操作进一步深入如下 String csn (charsetName null) ? ISO-8859-1 : charsetName; 同样的方法可以看到new String 的构造函数内部是调用StringCoding.decode()方法 public String(byte bytes[], int offset, int length, Charset charset) {if (charset null)throw new NullPointerException(charset);checkBounds(bytes, offset, length);this.value StringCoding.decode(charset, bytes, offset, length);} decode方法和encode对编码格式的处理是一样的。 对于以上两种情况我们只需要设置统一的编码格式一般都不会产生乱码问题。 编码编码格式首先先看看java编码类图 首先根据指定的chart设置ChartSet类然后根据ChartSet创建ChartSetEncoder对象最后再调用 CharsetEncoder.encode 对字符串进行编码不同的编码类型都会对应到一个类中实际的编码过程是在这些类中完成的。下面时序图展示详细的编码过程通过这编码的类图和时序图可以了解编码的详细过程。下面将通过一段简单的代码对ISO-8859-1、GBK、UTF-8编码 public class Test02 {public static void main(String[] args) throws UnsupportedEncodingException {String string 我是 cm;Test02.printChart(string.toCharArray());Test02.printChart(string.getBytes(ISO-8859-1));Test02.printChart(string.getBytes(GBK));Test02.printChart(string.getBytes(UTF-8));}/*** char转换为16进制*/public static void printChart(char[] chars){for(int i 0 ; i chars.length ; i){System.out.print(Integer.toHexString(chars[i]) ); }System.out.println();}/*** byte转换为16进制*/public static void printChart(byte[] bytes){for(int i 0 ; i bytes.length ; i){String hex Integer.toHexString(bytes[i] 0xFF); if (hex.length() 1) { hex 0 hex; } System.out.print(hex.toUpperCase() ); }System.out.println();} } -------------------------outPut: 6211 662f 20 63 6d 3F 3F 20 63 6D CE D2 CA C7 20 63 6D E6 88 91 E6 98 AF 20 63 6D 通过程序我们可以看到“我是 cm”的结果为 char[]6211 662f 20 63 6d ISO-8859-13F 3F 20 63 6D GBKCE D2 CA C7 20 63 6D UTF-8E6 88 91 E6 98 AF 20 63 6D 图如下 原文链接

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/88227.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

企业网站的搭建流程wordpress 主域名

tcp协议本身是可靠的,并不等于应用程序用tcp发送数据就一定是可靠的.不管是否阻塞,send发送的大小,并不代表对端recv到多少的数据 在阻塞模式下, send函数的过程是将应用程序请求发送的数据拷贝到发送缓存中发送并得到确认后再返回.但由于发送缓存的存在,表现为:如果发送缓存大…

网站下载的网页修改下面版权所有苏州市城乡建设局网站

vscode安装插件:JavaScript Debugger (Nightly) 点击后生成一个launch.json文件 打断点,并发送一个请求来执行代码到断点处 按右上的向下箭头,进入源码,进行查看,左边查看变量等值

乐昌北京网站建设嘉兴免费自助建站模板

1作家李尚龙说:“在大城市里,搞废一个人的方式特别简单。给你一个安静狭小的空间,给你一根网线,最好再加一个外卖电话。好了,你开始废了。”之前的我并不相信人会这么轻易地堕落,直到身边出现了一个真实的例…

某服装公司网站建设论文php网站开发案例论文

目录 1.nacos环境搭建nacos安装 2.项目主体结构6.2)表结构分析6.4)**运营端微服务搭建**6.4)登录功能实现 7)接口工具postman、swagger、knife4j7.1)postman7.2)swagger7.3)knife4j 8)网关9)前端集成9.1)前端项目部署思路9.2)配置nginx 1.nacos环境搭建 nacos安装 ①&#xf…

职业培训学校seo视频教程汇总

1. 题目 输入数字 n,按顺序打印出从 1 到最大的 n 位十进制数。比如输入 3,则打印出 1、2、3 一直到最大的 3 位数 999。 示例 1: 输入: n 1 输出: [1,2,3,4,5,6,7,8,9]说明: 用返回一个整数列表来代替打印 n 为正整数来源:力扣…

个人网站 不用备案兴县做网站

文章目录 前言Job的基本概念什么是Job?Job的主要作用 Job的详细示例示例:运行批量处理任务的JobJob的定义创建Job查看Job状态查看任务执行日志任务的重试 Job的最佳实践 结论 前言 Kubernetes(K8s)作为领先的容器编排平台&#x…

河北网站seo地址东营有网站

HTML5 新标签总汇 2010-12-16 20:44 聂微东 阅读(5060) 评论(8) 编辑 收藏 HTML5新标签总汇&#xff1a; 有问题欢迎指出,有关于CSS3方面的知识点较多,下周一前整理出来. <article> 标签定义外部的内容&#xff08;外部内容如blog,news&#xff09;。     …

使用oss图片做网站企业网站开发用什么语言写

8.3string流 sstream头文件定义了三个类型来支持内存IO,这些类型可以向string写入数据,从string读取数据&#xff0c;就像string是一个IO流一样。istringstream从string读取数据&#xff0c;ostringstream向string写入数据&#xff0c;而头文件stringstream既可从string读数据…

php网站开发教材网易云网站开发

「Author&#xff1a;By Runsen」在很多时候&#xff0c;你会想要让你的程序与用户(可能是你自己)交互。你会从用户那里得到输入&#xff0c;然后打印一些结果。我们可以使用input和print语句来完成这些功能。inputname input(your name:)gender input(you are a boy?(y/n))…

肇庆有哪家做企业网站的北京建设信息港网站

由于某些原因&#xff0c;centos系统上的teamviewer不能运行。一直没有管它&#xff08;懒&#xff09;。 但是&#xff0c;突然看不下去了。因为每次开机后都自动启动&#xff0c;需要关闭&#xff0c;否则有问题。所以&#xff0c;uninstall。 尝试了很多都失败。尝试的步骤是…

如何做自己的网站链接官方网站平台有哪些

ROS 系列学习教程(总目录) 本文目录 1. 构造函数与关闭文件2. 属性值3. 写bag文件内容4. 读bag文件内容5. 将bag文件缓存写入磁盘6. 重建 bag 文件索引7. 获取bag文件的压缩信息8. 获取bag文件的消息数量9. 获取bag文件记录的起止时间10. 获取话题信息与消息类型 rosbag 的 Pyt…

上海住房和城乡建设部网站官网学做网站可以赚钱吗

有两种Java运行环境(JRE)&#xff0c;公有JRE (public JRE)与私有JRE(private JRE)。JDK安装程序会安装私有JRE和一个可选的公有JRE。私有JRE完全包含在JDK的安装路径下&#xff0c;仅对JDK可见&#xff0c;为JDK所用。公有JRE为系统中所有的Java程序共享&#xff0c;具有独立的…

wordpress多站点配置教程佛山做网站有哪几家

前段时间在调试FT-M6678和C6678的板卡&#xff0c;结果中途来了一个T2080网络配置的更改需求&#xff0c;就临时处理了一下&#xff0c;花了一点功夫&#xff0c;记录下来&#xff0c;为大家做个参考。 这个问题完成后&#xff0c;就得继续开发FT-M6678了~ uboot下面phy配置更…

素材网站哪个最好中国制造网站上的聊天怎么做

介绍 Laf 是一个完全开源的 Serverless 框架&#xff0c;Laf 的 Node.js 运行时容器 (以下简称为 Runtime) 是 Laf 的函数执行环境&#xff0c;依托于 Express.js 框架。采用容器进程常驻的方式&#xff0c;每一个应用对应于一个或多个容器 (弹性伸缩下)&#xff0c;底层使用了…

做网站的的人收入多少钱电子商务网站开发项目

目录 1.C#的dll注册为COM&#xff0c;采用bat的方式 2.通过qt的dumpcpp来生成h及cpp文件 3.h文件和cpp文件处理。 台达数控系统的C#的dll dumpcpp用的tlb文件 dumpcpp生成的原生h文件 dumpcpp生成的原生cpp dump生成后的的原生cpp文件修改后的cpp文资源 dump生成后的的…

企业设计网站公司排名重庆网络教育学院官网

建议使用 root 管理员账户操作 1、安装工具 1、apache 2、.Net Core(dotnet-sdk-2.0) 3、Supervisor(进程管理工具&#xff0c;目的是服务器一开机就启动服务器 上发布的ASP.NET Core Web网站) 2、安装apache 在安装apache之前&#xff0c;要先做一件事就是&#xff0c;把当前登…

密云成都网站建设wordpress提示插件安装插件

据说2021年12月2日是一个美好日子&#xff0c;因为这是一个完全对称日&#xff01;这里认为一个美好日子是一个共8位数字的完全对称日&#xff08;例如20211202&#xff09;&#xff0c;其中年份占4位&#xff0c;月份、日份都是2位。对于给定的年份&#xff0c;请判断该年是否…

怎么做天猫内部券网站手机app制作网站

目录 简介首次用户技术特点竞品和相关作品进一步阅读 简介 trafilatura 是一个用于从网页上提取文本的命令行工具和 python 包: 提供网络爬虫、下载、抓取以及提取主要文本、元数据和评论等功能可帮助网站导航和从站点地图和提要中提取链接无需数据库&#xff0c;输出即可转换…

用网站做邮箱孟州网站

方法 1 首先打开控制面板 2 点击程序 3 点击程序与功能 4 点击左边启用或关闭windows功能 5 在telnet客户端打上勾 点击确定 6 winr打开运行 输入cmd 7 打开后输入telnet ip 端口号 如果出来其他窗口则说明这个端口可用。若出现超时&#xff0c;说明这个端口不可用 前提…

建设网站策划案怎么根据已有网站做新网站

下载下载器 Qt开发技巧之快速安装多版本Qt_qt安装多版本-CSDN博客 无法下载存档bug-更换镜像源 windows安装QT时出现“无法下载存档……”解决办法 - lmore - 博客园 (cnblogs.com)