首页 > 解决方案 > Netbeans 8.0.2 中来自 Java Web 应用程序的非英语数据输入

问题描述

我的连接字符串

Class.forName("com.mysql.jdbc.Driver");

conn= DriverManager.getConnection("jdbc:mysql://localhost:3306/exam_system?useSSL=false&useUnicode=true&characterEncoding=utf8","root","Password");

我的 JSP 文件

<%@page import="java.util.ArrayList"%>
<jsp:useBean id="pDAO" class="myPackage.DatabaseClass" scope="page"/>

<%@page contentType="text/html" pageEncoding="UTF-8"%>
<!DOCTYPE html>
<html>
<head>
    <title></title>
    <link rel="stylesheet" type="text/css" href="style-backend.css">
        <link rel="stylesheet" type="text/css" href="style.css">
        <meta charset="utf-8" >
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />

            <label Style="color: black">  ছন্দে&lt;/label>
            <input type="hidden" name="pgprt" value="4">
            <select name="coursename" class="text">
        <% 
            ArrayList list1=pDAO.getAllCourses();

            for(int i=0;i<list1.size();i=i+2){
        %>
        <option value="<%=list1.get(i)%>"><%=list1.get(i)%></option>
            <%
            }
            %>
            </select>
            <input type="submit" value="Show" class="form-button">
            </form>
                            </div>

        <div class="panel form-style-6" style="max-width: 420!important;float: right">   
           <form action="controller.jsp" >
               <div class="title">Add New Question</div>
               <table Style="color: black;font-color: black">
                   <tr>
                       <td><label Style="color: black">Course Name</label></td>
                       <td colspan="3"> 
                               <select name="coursename" class="text">
        <% 
            ArrayList list=pDAO.getAllCourses();

            for(int i=0;i<list.size();i=i+2){
        %>
        <option value="<%=list.get(i)%>"><%=list.get(i)%></option>

            <%
            }      request.setCharacterEncoding("UTF-8");      
            %>

            </select>
                       </td>
                   </tr>
                   <tr>
                       <td><label Style="color: black">Your Question:</label></td>
                       <td colspan="4"><input type="text" name="question" class="text" placeholder="Type your question here" style="width: 420px;" ></td><br>
                   </tr>
                   <tr>
                       <td><label Style="color: black">Options</label></td>
                       <td><input type="text" name="opt1" class="text" placeholder="First Option" style="width: 130px;" ></td>
                       <td><input type="text" name="opt2" class="text" placeholder="Second Option" style="width: 130px;" ></td>
                       <td><input type="text" name="opt3" class="text" placeholder="Third Option" style="width: 130px;" ></td>
                       <td><input type="text" name="opt4" class="text" placeholder="Fourth Option" style="width: 130px;" ></td>
                   </tr>
                   <tr>
                       <td><label>Correct Answer</label></td>
                       <td colspan="4"><center><input type="text" name="correct" class="text" placeholder="Correct Answer" style="width: 130px;" ></center></td>
                   <tr>
                       <td colspan="5"><input type="hidden" name="page" value="questions">
                    <input type="hidden" name="operation" value="addnew">
                       <center><input type="submit" class="form-button" value="Add" name="submit"></center></td>

输入非英文数据时,未正确插入 MySQL 数据库。但是我通过在字符串中传递非英语数据来更改数据库模式和测试,并且效果很好。

INSERT INTO `exam_system`.`contact`
(`Name`,
`Email`,
`Message`)
VALUES
('<{Name:fsfsd }>',
'<{Email:sdfsdf }>',
'<{Message: 1. চর্যাপদ কোন ছন্দে লেখা? }');

在回答之前我试过了

  1. Net Bean 字体更改

  2. 尝试将字符串数据更改为字节

  3. 和休息

更改在符号代码中。

标签: javajspinput

解决方案


当接受参数或用户值时,将该值转换为 Char 。

String crr=request.getParameter("correct");
byte[] bytesCrr = crr.getBytes(StandardCharsets.ISO_8859_1);
crr = new String(bytesCrr, StandardCharsets.UTF_8);

推荐阅读