首页 > 前端开发 > 正文

web前端开发出现乱码 Java web为什么输入的中文还是显示问号?text目录下的东西跟workspace得改的都改了

2023-09-30 19:46:32 | 我爱编程网

今天我爱编程网小编整理了web前端开发出现乱码 Java web为什么输入的中文还是显示问号?text目录下的东西跟workspace得改的都改了相关内容,希望能帮助到大家,一起来看下吧。

web前端开发出现乱码 Java web为什么输入的中文还是显示问号?text目录下的东西跟workspace得改的都改了

前端读取dat文件内容出现乱码是这么回事?

这种一般都是数据文件,二进制的,不是文本文件,你改任何编码都没用(就象你电脑上普通的比如jpg/mp3)一样,要读取内容就需要知道它具体的结构,比如第几个字节代表什么含义。
注:象你图三那样用文本编辑器打开后不要保存,一保存那个文件就废了。

web前端开发出现乱码 Java web为什么输入的中文还是显示问号?text目录下的东西跟workspace得改的都改了我爱编程网

Js如何利用URL向后台传入中文参数乱码问题


我们经常会在前台请求以后后台对应URL时,在URL中利用此URL向后台传递参数,但如果参数为中文会存在乱码问题。下面我们考虑一个场景来详细说明URL传递参数时的乱码解决之道。


假设我们页面中拥有一个输入框、一个提交按钮,当我们点击提交按钮时获取输入框中用户输入的值,然后利用URL传递参数的方式,将输入框的值传递到后台。我们假设后台对应web层处理技术使用Struts2的Action进行数据处理,假设Action中处理数据的URL为/say。具体页面急请求Action代码如下:
html代码:


<input type="text" id="name" name="name" value="${user.name}" />
<button id="sub" onclick="sub()">提交</button>
javascript代码:
<script type="text/javascript">
function sub(){
var name = document.getElementById("name").value;①
window.location = "sayHello?user.name=" + name;②
}
</script>以上代码首先从id为name的输入框中取得输入框的值,然后利用window.localtion请求URL为sayHello的Action,在此action后面利用key=value这样的格式,传入的参数,并根据Struts2的机制利用传入的输入框中的值,更新了后台User实体的name属性。
URL编码及解码原理:
由于我们利用URL传递参数这种方式是依赖与浏览器环境中的,也就是说URL及URL中包含的各个key=value格式的传递参数键值对参数是在浏览器地址栏中的处理原理处理相应编码后传递至后台进行解码的。
由于我们没有进行任何处理,此时javascript请求URL并传参数存在中文时(也就是说输入框中输入中文时),对URL的中文参数进行编码是按照浏览器机制进行编码的。此时编码存在乱码问题。
假设输入框中输入的内容为“测试”二字,后台Action接受到的参数值为乱码。javascript中利用encodeURI()方法进行编码。
1、利用encodeURI()在javascript中对中文URL参数进行编码时,“测试”二字会被转换为“%E6%B5%8B%E8%AF%95”
2、但是浏览器机制会认为“%”是一个转义字符,浏览器会把地址栏URL中的传递的已转换参数“%”与“%”之间的已转义字符进行处理传递到后台Action中。这样会造成与实际经过encodeURI()编码后的URL不符,因为浏览器误认为“%”是转义字符字符了,它并未将“%”认为是个普通字符。
3、要使得通过encodeURI()转换后的URL被浏览器正常处理,必须在外层再用encodeURI()处理一次已被encodeURI()编码后的RUL。这此处理encodeURI()会将已编码后的URL中被浏览器解析为转义字符的“%”再次进行编码,转换为普通字符。
4、正常处理后,前面javascript代码中②处代码为:
window.location = encodeURI(encodeURI("sayHello?user.name="
+ name));
5、处理后的URL不在是通过一次 encodeURI()转换后的字符串”%E6%B5%8B%E8%AF%95“,而是经过上一步两层encodeURI()处理URL处理后的字符串”%25E6%B255%258B%25E8%AF%2595“,通过再次编码原有被浏览起解析为转义字符的”%“被再次编码,转换成了普通字符转”%25“。
此时前端javascript代码对带有中文的URL编码已经完成,并通过URL传递参数的方式传递到后台Action等待处理,Action获取到正常转换切无乱码的参数为”%25E6%B255%258B%25E8%AF%2595“,此字符串对应的中文正是我们输入的”测试“二字。
Action获取到这样的字符串无法进行处理,因为它并不是我们前端输入的源数据”测试“二字,而是进过两次encodeURI()编码后的字符串。于是我们需要利用后台的一个API对前端编码后的参数字符串进行解码,对应解码API是URLDecoder.decode(user.getName(),"UTF-8")。
URLDecoder的decode(String str,String ecn)方法有两个参数,第一个参数为待解码的字符串,第二个参数为解码时的对应编码。我么在后台使用此API进行解码的代码为:
URLDecoder.decode(user.getName(),"UTF-8");
总结:
此时我们完成了URL传入中文参数出现乱码的问题,总结步骤大致分为一下阶段:
1、在javascript中利用encodeURI()两次嵌套对URL中的中文参数进行编码
2、在后台获取到进过前端encodeURI()编码后的字符串,使用decode(String
str,String ecn)方法进行解码

web前端开发出现乱码 Java web为什么输入的中文还是显示问号?text目录下的东西跟workspace得改的都改了

Java web为什么输入的中文还是显示问号?text目录下的东西跟workspace得改的都改了

你好,这是 GET方式传递中文参数 乱码 问题,非常的常见,很简单。

在获取到的 name 字符串 后边调用这个方法处理一下试试看
name = java.net.URLDecoder.decode(name,"UTF-8");
System.out.println(name);

原因是,前端网页get方法传输参数的时候,URL中的中文会自动的编码(因为URL中不能包含中文),所以你在后端java程序中收到参数后,需要将被编码的中文进行一次解码的操作。
以上的代码,就是对接收到的中文做了解码。
希望能够帮到你!

以上就是web前端开发出现乱码 Java web为什么输入的中文还是显示问号?text目录下的东西跟workspace得改的都改了全部内容,更多相关信息,敬请关注我爱编程网。
与“web前端开发出现乱码 Java web为什么输入的中文还是显示问号?text目录下的东西跟workspace得改的都改了”相关推荐
php框架输出显示乱码 如何解决php字符乱码问题
php框架输出显示乱码 如何解决php字符乱码问题

如何解决php字符乱码问题php字符乱码的解决办法:1、在title前加入语句“charset=utf-8”;2、去除BOM标签;3、在PHP代码前加入语句“header(“Content-Type:text/html;charset=utf-8”)”。推荐:《PHP视频教程》一.HTML页面转UTF-8编码问题1.在head后,title前加入一行:&lt;metahtt

2023-09-22 15:21:49
php框架出现中文乱码 如何解决php的数据库中文乱码问题
php框架出现中文乱码 如何解决php的数据库中文乱码问题

php都是乱码怎么办php乱码的解决办法:1、设置数据库和保存文件的编码为“utf8”;2、保存文件时修改编码;3、使用“mb_convert_encoding”函数进行转码;4、设置数据库的存储编码为“utf8”。推荐:《PHP视频教程》PHP出现乱码,解决乱码的方法一,出现乱码的原因分析1,保存文件时候,文件有自己的文件编码,就是汉字,或者其他国语言,以什么编码来存储

2023-09-28 20:22:35
web前端开发乱码 解决 Web 开发中常见的中文乱码问题
web前端开发乱码 解决 Web 开发中常见的中文乱码问题

二、解决SpringMVC前端发送到后端中文乱码问题遇到SpringMVC框架中,从前端form表单中传递中文到后端Controller时,Controller接收到数据出现乱码问题时:在SpringMVC的web.xml中加入一个过滤器即可解决Javaweb为什么输入的中文还是显示问号?text目录下的东西跟workspace得改的都改了你好,这是GET方式传递中文参数乱码问

2023-09-08 02:10:23
web前端开发代码改中文 什么是web前端
web前端开发代码改中文 什么是web前端

Web前端是干嘛的前端是在浏览浏览器的时候,它是网络前台的部分,运行在pc端。移动端等浏览器上展示给用户浏览的页面,利用完美的动态设计,能够给用户带来极高的用户体验。前端前端技术一般分为前端设计和前端开发,前端设计一般可以理解为网站上面的视觉设计,前端开发则是网站的前台代码实现。前端开发又最基本的三个核心,这也是必须掌握的三个重要的核心,分别是HTML、CSS、JavaScr

2023-08-31 19:56:39
web前端开发防止文字溢出 web前端入门到实战:css实现单行、多行文本超出显示省略号
web前端开发防止文字溢出 web前端入门到实战:css实现单行、多行文本超出显示省略号

在html中如果文字超出多少个就省略想在html中如果文字超出多少个就省略的操作方法如下:一是用程序开截取字符长度。第二种是用样式来做。具体方法如下:html代码如下:超文本标记语言,标准通用标记语言下的一个应用。“超文本”就是指页面内可以包含图片、链接,甚至音乐、程序等非文字元素。超文本标记语言的结构包括“头”部分(英语:Head)、和“主体”部分(英语:Bo

2023-09-23 09:28:21
php框架怎么修改页面内容 急用啊,先谢谢大神们,使用的thinkphp框架,html页面中怎么实现上面输出内容下面跟着改变?
php框架怎么修改页面内容 急用啊,先谢谢大神们,使用的thinkphp框架,html页面中怎么实现上面输出内容下面跟着改变?

php开发框架流行那个,如果谁用过,请详细写一下配置过程ZendFramework安装安装环境:WindowsXPProfessional(SP2)Appserv(Apache2.2.4,PHP/5.2.3,MySQL5.0.45)ZendFramework1.0.1(2007-07-30)一、基本设置:1.设定mod_rewrite编辑httpd.conf

2023-09-28 15:06:16
web前端开发怎么弄颜色 在html文件中设置背景颜色为什么显示不出来
web前端开发怎么弄颜色 在html文件中设置背景颜色为什么显示不出来

在html文件中设置背景颜色为什么显示不出来首先确定要使用的背景颜色,HTML颜色由每个代码决定。在计算机的Web浏览器中访问-colornames.html,就能查看所有颜色的代码,并且在“HEX”部分中选择要使用的基色。使用Notepad++或Notepad打开HTML文件,并且把页面的所有样式信息(包括背景颜色)添加进来。将“background-color”属性添加到“b

2023-10-11 07:06:38
web前端开发网站乱码 二、解决SpringMVC前端发送到后端中文乱码问题
web前端开发网站乱码 二、解决SpringMVC前端发送到后端中文乱码问题

二、解决SpringMVC前端发送到后端中文乱码问题遇到SpringMVC框架中,从前端form表单中传递中文到后端Controller时,Controller接收到数据出现乱码问题时:在SpringMVC的web.xml中加入一个过滤器即可解决python爬虫抓取到的数据用网页打开时是乱码,怎么解决写爬虫是经常会遇到这样的问题,这种问题很显然是编码问题,解决的方法其实也不难。

2023-09-25 07:10:00