gpt4 book ai didi

flash - 从 Flash Player 接收到的参数的字符编码

转载 作者:行者123 更新时间:2023-11-28 23:46:00 24 4
gpt4 key购买 nike

我在解码 Flash Player HttpService 发送的参数(来自 Spark Form 的数据)并在 Java Servlet 中接收时遇到问题。这是 HttpService 和 Form 的客户端代码:

<mx:HTTPService id="submitForm" result="onResultSend(event)" method="POST" url="{EVMServerConnection.SERVER_ADDRESS}/UserSubmitionServlet" useProxy="false" resultFormat="text">
<mx:request xmlns="">
<login>{login.text}</login>
<password>{password.text}</password>
<email>{email.text}</email>
<userName>{userName.text}</userName>
<secondName>{secondName.text}</secondName>
<gender>{String(gender.selectedItem)}</gender>
<countryKey>{String(country.selectedItem)}</countryKey>
<city>{city.text}</city>
<dateOfBirth>{String(dayOfBirth.selectedItem) + String(monthOfBirth.selectedItem) + String(yearOfBirth.selectedItem)}</dateOfBirth>
</mx:request>
</mx:HTTPService>

servlet 方法:

private void registerUser(HttpServletRequest request, HttpServletResponse response) throws UnsupportedEncodingException {
//request.setCharacterEncoding("UTF-16LE");
System.out.println(request.getCharacterEncoding());
String login = request.getParameter("login");
String password = request.getParameter("password");
String email = request.getParameter("email");
//String userName = DataUtils.getUTF8FromUTF16String( request.getParameter("userName") );
//String userName = request.getParameter("userName");
byte[] bytes = request.getParameter("userName").getBytes();
String userName = new String(bytes , "Unicode" );
System.out.println("UserName: " + userName);
String secondName = request.getParameter("secondName");
String gender = request.getParameter("gender");
boolean isMale = false;
if (gender != null)
isMale = !gender.equals("1");
//String countryKey = request.getParameter("countryKey");
String city = request.getParameter("city");
String dateOfBirth = request.getParameter("dateOfBirth");
Date dateDateOfBirth = null;

当我尝试在控制台上显示用户名时,我得到了中文符号,尽管它应该是波兰语字母。我尝试在 new String() 中使用 UTF-16、UTF-16LE、UTF-16BE 代替 Unicode 参数,但结果相似。

最佳答案

我正在使用的 Apache Tomcat 7 提供的类(class)很有帮助。我在我的 web.xml 中添加了 SetCharacterEncodingFilter,现在一切正常,我可以用普通方式读取参数(通过 String name = request.getParameter("name") )

...
<filter>
<filter-name>SetCharacterEncoding</filter-name>
<filter-class>org.apache.catalina.filters.SetCharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>SetCharacterEncoding</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
...

关于flash - 从 Flash Player 接收到的参数的字符编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14416051/

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