Lors du déploiement d'un programme de services Web aujourd'hui, le servlet qui obtient les données de la page a rencontré un problème tronqué. Dans le servlet, j'ai ajouté le texte request.setCharacterEncoding("GB2312");
Recherchez des informations en ligne comme suit : JAVA est un codage Unicode, vous le convertissez d'abord en ISO8859-1, puis le convertissez en GBK ou GB2312.
Code Java
C'est du chinois !
Il existe un moyen plus simple, qui consiste à définir la conversion d'encodage directement sur le serveur. TOMCAT5.0.28 est utilisé.
Recherchez le fichier SERVER.XML dans le répertoire ../Tomcat 5.0/conf, ouvrez-le avec WordPad et définissez-le comme suit :
Ajoutez simplement un attribut à l'intérieur, URIEncoding="GBK"
Le test est réussi et il est terminé. Ensuite, quel rôle joue la phrase request.setCharacterEncoding("GB2312") Si elle ne peut pas résoudre le problème compliqué, quel rôle l'utilisons-nous pour jouer ?
(1) La page JSP est en chinois, mais quand vous la regardez, elle est tronquée :
La solution consiste à encoder la page JSP. En raison du problème d'encodage lorsque JSP est converti en fichier Java, certains serveurs utilisent ISO-8859-1 par défaut. Si le chinois est directement saisi dans un JSP, JSP le traite comme ISO8859. 1 est définitivement un problème. Nous pouvons le confirmer en examinant le fichier intermédiaire Java généré par Jasper.
(2) Lors de l'utilisation de l'objet Request pour obtenir le code de caractères chinois soumis par le client, des caractères tronqués apparaîtront :
La solution est de configurer un filtre, qui est un filtre Servelet. Le code est le suivant :
request.setCharacterEncoding("GBK");
// Passe le contrôle au filtre suivant
chain.doFilter(demande, réponse);
}
<filter-mapping></filter-mapping>
<filter-name></filter-name>Définir le codage des caractères
<modèle-url></modèle-url>/*
Il existe également le traitement des informations contenant des caractères chinois. Le code de traitement est :
La solution est :
1) Ouvrez le fichier server.xml de Tomcat, recherchez le bloc et ajoutez la ligne suivante :
URIEncoding=”GBK”
Le complet doit être le suivant :
(4) Il y a des caractères chinois sur la page JSP et des caractères chinois sur les boutons, mais lors de la visualisation de la page via le serveur, des caractères tronqués apparaissent :
La solution est la suivante : premièrement, le texte du message localisé ne doit pas être inclus directement dans le fichier JSP, mais le texte doit être obtenu à partir du regroupement de ressources via la balise <bean:message>. Vous devez mettre votre texte chinois dans le fichier Application.properties. Ce fichier est placé sous WEB-INF/classes/*. Par exemple, si j'ai deux étiquettes pour le nom et l'âge sur la page, je dois d'abord créer une application. propriétés. Le contenu à l'intérieur doit être name="name" age = "age", puis je place ce fichier sous WEB-INF/classes/properties/, puis je l'encode selon le fichier Application.properties et je crée un fichier de ressources chinois, en supposant que le nom est Application_cn.properties. La commande native2ascii est fournie dans le JDK, qui peut réaliser une conversion de codage de caractères. Recherchez le répertoire dans lequel vous avez placé le fichier Application.properties dans l'environnement DOS. Exécutez la commande dans l'environnement DOS. Le fichier de ressources chinois Application_cn.properties codé en GBK sera généré : native2ascii ?encoding gbk Application.properties Application_cn.properties. la commande ci-dessus. Le fichier Application_cn.properties avec le contenu suivant sera généré à l'avenir : name=u59d3u540d. age=u5e74u9f84, configuré dans Struts-config.xml : <message-resources paramètre="properties.Application_cn"></message-resources>. À ce stade, plus de la moitié est pratiquement terminée. Ensuite, vous devez écrire sur la page JSP. Pour l'étiquette du nom, vous devez écrire <bean:message key=""name"">. sur la page. Le nom chinois apparaîtra, il en va de même pour l'âge, et les caractères chinois sur le bouton sont également traités de la même manière.
(5) Le code écrit dans la base de données est tronqué :
Solution : Configurez un filtre, qui est un filtre Servelet. Le code est le même que la deuxième fois.
Si vous êtes directement connecté à la base de données via JDBC, le code de configuration est le suivant : jdbc:mysql://localhost:3306/workshopdb? useUnicode=true&characterEncoding=GBK, afin de garantir que le code de la base de données n'est pas tronqué.
Si vous effectuez un lien via la source de données, vous ne pouvez pas l'écrire comme ceci. Tout d'abord, vous devez l'écrire dans le fichier de configuration. L'endroit pour configurer la source de données dans Tomcat 5.0.19 se trouve sous C:Tomcat 5.0confCatalinalocalhost que j'ai créé. Le projet est atelier, et le répertoire où il est placé est sous webapp. Le fichier de configuration de atelier.xml est le suivant :
<resource name="jdbc/WorkshopDB"></resource>auth="Conteneur"
type="javax.sql.DataSource" />
<resourceparams name="jdbc/WorkshopDB"></resourceparams>
<paramètre></paramètre>
<nom></nom>usine
<value></value>org.apache.commons.dbcp.BasicDataSourceFactory
<paramètre></paramètre>
<nom></nom>maxActive
<valeur></valeur>100
<paramètre></paramètre>
<nom></nom>maxIdle
<valeur></valeur>30
<paramètre></paramètre>
<nom></nom>maxWait
<valeur></valeur>10 000
<paramètre></paramètre>
<nom></nom>nom d'utilisateur
<value></value>racine
<paramètre></paramètre>
<nom></nom>mot de passe
<valeur></valeur>
<paramètre></paramètre>
<nom></nom>driverClassName
<value></value>com.mysql.jdbc.Driver
<paramètre></paramètre>
<nom></nom>url
<valeur></valeur>
Faites particulièrement attention aux endroits en gras. C'est différent du lien direct vers JDBC. Si vous le configurez correctement, lorsque vous entrez le chinois, ce sera le chinois dans la base de données. Une chose à noter est que lorsque vous affichez la page de données. a également besoin de cette ligne de code. Il convient de noter que certains membres du personnel de la réception utilisent Dreamver pour écrire le code. Lors de la rédaction d'un formulaire, ils le modifient en jsp. Il y a une chose à laquelle il faut faire attention, c'est la soumission de l'action dans Dreamver. demande, et vous devez l'envoyer, car il existe deux méthodes de soumission JSP : POST et GET, mais le code soumis par ces deux méthodes est toujours très différent en termes d'encodage. </bean:message>< /bean:message>