gpt4 book ai didi

html - 如何使用 Servlet 从 HTML 表单中检索 URDU 数据(UTF-8)以插入 MYSQL 数据库

转载 作者:行者123 更新时间:2023-11-29 23:25:35 26 4
gpt4 key购买 nike

场景:我的 MYSQL 默认为 UTF-8。我的 HTML 和 JSP 页面也是如此,它们都以 UTF-8 作为标准。如果我将表单方法保留为:

表单操作=“reg”方法=“post”接受字符集=“ISO-8859-1,utf-8;q=0.5”enctype=“application/x-www-form-urlencoded”名称=“form1 “id="form1"
^-------- 有效

如果表单操作=“reg”方法=“post”accept-charset=“ISO-8859-1”enctype=“application/x-www-form-urlencoded”name=“form1”id=“form1”

^--------------有效

如果表单操作=“reg”方法=“post”accept-charset=“utf-8”enctype=“application/x-www-form-urlencoded”名称=“form1”id=“form1”^--------它不起作用,而是显示类似通配符的字符。

问题陈述:当我将 HTML 页面重定向到 JSP 页面并使用 <% out.println( request.getParameter("name"));%>它正确显示: Ìñode

但是,当我使用 String xx=request.getParameter("name"); 时然后显示它显示的字符串: ج ; نید

因此,除了硬编码之外,我无法将 urdu 放入我的数据库中。

我需要一个解决方案:从 URDU 中的 HTML 表单中获取用户输入,例如: Ìñð并在数据库中插入相同的内容,而不是 ج ;ن ;ی ;د ;这也对应于 Ìñode

最佳答案

您不应该使用String xx=request.getParameter("name");您可以使用 String xx= new String(request.getParameter("name"),"<Proper-Encoding>"); 来代替它

然后你的String对象xx不会腐败。

或者

您可以使用String xx = URLDecoder.decode(request.getParameter("name"),"<Proper-Encoding>")

您通过打印 request.getParameter("name") 获得了正确的值因为 servlet 容器已经以正确的格式为您对其进行了编码。和out JSP 中的编写器以正确的格式进行解码。

所以要保存request.getParameter("name")xx你必须自己解码它。

您可以引用以下链接以获得更清晰的理解。

Question1

Question2

Blog

关于html - 如何使用 Servlet 从 HTML 表单中检索 URDU 数据(UTF-8)以插入 MYSQL 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27000743/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com