Servlet+JSP+MySQL5.6模式下开发web应用出现的中文乱码处理
为了规范 我们使用UTF-8编码为例 我用的web开发软件是 MyEclipse8.5 MySQL5.6 tomcat7 1.弄明白一个web应用从数据库到jsp页面可能经历了哪几层编码的转化 大致是以下的流程 浏览器解释jsp文件所用的编码 - jsp,java文件等等本身的编码 - request接受数据 传
为了规范 我们使用UTF-8编码为例 我用的web开发软件是 MyEclipse8.5 MySQL5.6 tomcat7
1.弄明白一个web应用从数据库到jsp页面可能经历了哪几层编码的转化 大致是以下的流程
浏览器解释jsp文件所用的编码 jsp,java文件等等本身的编码 request接受数据 传递数据时所用的编码 或者是form表单提交数据所用的编码 Tomcat服务器接受数据时用的编码 Tomcat服务器传递数据给Servlet所用的编码 在servlet中使用sql语句的编码(一般与java文件本身的的编码一致) 数据库中存储数据使用的编码
2.现在说说怎么去设置每个流程的编码
①.浏览器解释jsp文件所用的编码
在servlet文件中 doGet()方法的第一句应该为这条语句"response.setContentType("text/html;charset=utf-8");" doPost()方法应该为 this.doGet()
在jsp文件中的第一句 加上“ ”
②.jsp.java文件等等本身的编码
jsp文件中添加这句“
同时为了保险 在MyEclipse中做一些设置
首先对你的web工程名右键选择properties -> Resource -> 选择Text file encoding为UTF-8
然后Window -> Preferences -> MyEclipse -> Files and Editors 把所有的与你的web工程有关的文件比如jsp css xml 的编码全部设置为 ISO 10640/Unicode(UTF-8)
③.request接受数据 传递数据所用的编码 (这个说实话我并没有指定也解决了中文乱码) 但为了保险 我还是把方法写在这里
所有的servlet 文件里面的doGet方法的第一句为request.setCharacterEncoding("UTF-8"); 与前面说的稍有冲突 但基本无影响 doPost()方法应该为 this.doGet()
所有的jsp文件也是一样 在用到request之前就指定编码
至于form表单提交时的编码问题 我并没有指定
④.Tomcat服务器接收数据时所用的编码
这个很简单 在Tomcat目录下的server.xml文件里面 找到
redirectPort="8443" /> 改为
redirectPort="8443" URIEncoding="UTF-8" />
⑤.sql语句的编码与数据库存储数据时指定的编码
网上大多数人都说 为了编码一致 必须在mysql数据库中所有的地方都要使用一样的编码 如UTF-8 于是就要这样做 mysql> set names 'UTF-8'; 还有的人说 在my.ini里面 设置默认编码为UTF-8 当然这个是以前的MySQL版本了 MySQL5.6是没有my.ini这个文件的 至少我没找到
诚然 以上的办法也许能够解决问题 但不幸的是 在我这里确实无法解决
但根据我自己的理解来说
这里存在一个问题 当你右键控制台窗口 选择默认值的时候 默认代码页是没有UTF-8的 只有 437 OEM 美国 和 GBK 这里无法保证编码的统一性
如果使用set names 这样的sql语句指定编码一致的话 会出问题
然后 那又该如何解决? 首先确保你的默认代码页是GBK
使用sql语句 mysql>show variables like 'character_set_%'; 查看mysql字符集
确保结果是这样
mysql> show
variables like 'character_set_%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | gbk |
| character_set_connection | gbk |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | gbk |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
如果不是 请使用sql语句 形如 mysql> set character_set_client=gbk; 这样来逐个修改编码
经过以上的修改 请重启tomcat服务器 mysql数据库
我的数据库 jsp页面的乱码就这样实实在在的解决了 无论是jsp页面插入中文数据到数据库 还是从数据库中提取数据到jsp页面的显示 都没问题了
很是希望以上的办法能够帮助到与我一样陷入乱码痛苦的码农们 在下才疏学浅 如果你觉得有帮助 那是我的荣幸 如果你觉得没帮助 也请别喷
如果说以上的一些说法有问题 恳请广大网友指正 小弟感激不尽!

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

Video Face Swap
Tauschen Sie Gesichter in jedem Video mühelos mit unserem völlig kostenlosen KI-Gesichtstausch-Tool aus!

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen





Dieses KI-gestützte Programmiertool hat in dieser Phase der schnellen KI-Entwicklung eine große Anzahl nützlicher KI-gestützter Programmiertools zu Tage gefördert. KI-gestützte Programmiertools können die Entwicklungseffizienz verbessern, die Codequalität verbessern und Fehlerraten reduzieren. Sie sind wichtige Helfer im modernen Softwareentwicklungsprozess. Heute wird Dayao Ihnen 4 KI-gestützte Programmiertools vorstellen (und alle unterstützen die C#-Sprache). https://github.com/YSGStudyHards/DotNetGuide1.GitHubCopilotGitHubCopilot ist ein KI-Codierungsassistent, der Ihnen hilft, Code schneller und mit weniger Aufwand zu schreiben, sodass Sie sich mehr auf Problemlösung und Zusammenarbeit konzentrieren können. Git

Selbst das Beantworten von Anrufen im Modus „Bitte nicht stören“ kann ein sehr lästiges Erlebnis sein. Wie der Name schon sagt, deaktiviert der Modus „Bitte nicht stören“ alle Benachrichtigungen über eingehende Anrufe und Warnungen von E-Mails, Nachrichten usw. Sie können diesen Lösungssätzen folgen, um das Problem zu beheben. Fix 1 – Fokusmodus aktivieren Aktivieren Sie den Fokusmodus auf Ihrem Telefon. Schritt 1 – Wischen Sie von oben nach unten, um auf das Kontrollzentrum zuzugreifen. Schritt 2 – Aktivieren Sie als Nächstes den „Fokusmodus“ auf Ihrem Telefon. Der Fokusmodus aktiviert den „Bitte nicht stören“-Modus auf Ihrem Telefon. Es werden keine Benachrichtigungen über eingehende Anrufe auf Ihrem Telefon angezeigt. Fix 2 – Fokusmodus-Einstellungen ändern Wenn es Probleme mit den Fokusmoduseinstellungen gibt, sollten Sie diese beheben. Schritt 1 – Öffnen Sie Ihr iPhone-Einstellungsfenster. Schritt 2 – Als nächstes schalten Sie die Fokusmodus-Einstellungen ein

Am 3. März 2022, weniger als einen Monat nach der Geburt von Devin, dem weltweit ersten KI-Programmierer, entwickelte das NLP-Team der Princeton University einen Open-Source-KI-Programmierer-SWE-Agenten. Es nutzt das GPT-4-Modell, um Probleme in GitHub-Repositorys automatisch zu lösen. Die Leistung des SWE-Agenten auf dem SWE-Bench-Testsatz ist ähnlich wie die von Devin, er benötigt durchschnittlich 93 Sekunden und löst 12,29 % der Probleme. Durch die Interaktion mit einem dedizierten Terminal kann der SWE-Agent Dateiinhalte öffnen und durchsuchen, die automatische Syntaxprüfung verwenden, bestimmte Zeilen bearbeiten sowie Tests schreiben und ausführen. (Hinweis: Der obige Inhalt stellt eine geringfügige Anpassung des Originalinhalts dar, die Schlüsselinformationen im Originaltext bleiben jedoch erhalten und überschreiten nicht die angegebene Wortbeschränkung.) SWE-A

Tutorial zur Entwicklung mobiler Anwendungen in der Go-Sprache Da der Markt für mobile Anwendungen weiterhin boomt, beginnen immer mehr Entwickler damit, sich mit der Verwendung der Go-Sprache für die Entwicklung mobiler Anwendungen zu befassen. Als einfache und effiziente Programmiersprache hat die Go-Sprache auch großes Potenzial für die Entwicklung mobiler Anwendungen gezeigt. In diesem Artikel wird detailliert beschrieben, wie die Go-Sprache zum Entwickeln mobiler Anwendungen verwendet wird, und es werden spezifische Codebeispiele angehängt, um den Lesern den schnellen Einstieg und die Entwicklung eigener mobiler Anwendungen zu erleichtern. 1. Vorbereitung Bevor wir beginnen, müssen wir die Entwicklungsumgebung und die Tools vorbereiten. Kopf

Die Android-Entwicklung ist eine arbeitsreiche und spannende Aufgabe, und die Auswahl einer geeigneten Linux-Distribution für die Entwicklung ist besonders wichtig. Welche der vielen Linux-Distributionen eignet sich am besten für die Android-Entwicklung? In diesem Artikel wird dieses Problem unter verschiedenen Aspekten untersucht und spezifische Codebeispiele aufgeführt. Werfen wir zunächst einen Blick auf einige derzeit beliebte Linux-Distributionen: Ubuntu, Fedora, Debian, CentOS usw. Sie alle haben ihre eigenen Vorteile und Eigenschaften.

Cockpit ist eine webbasierte grafische Oberfläche für Linux-Server. Es soll vor allem neuen/erfahrenen Benutzern die Verwaltung von Linux-Servern erleichtern. In diesem Artikel besprechen wir die Cockpit-Zugriffsmodi und wie Sie den Administratorzugriff von CockpitWebUI auf das Cockpit umstellen. Inhaltsthemen: Cockpit-Eingabemodi Ermitteln des aktuellen Cockpit-Zugriffsmodus Aktivieren des Verwaltungszugriffs für das Cockpit über CockpitWebUI Deaktivieren des Verwaltungszugriffs für das Cockpit über CockpitWebUI Fazit Cockpit-Eingabemodi Das Cockpit verfügt über zwei Zugriffsmodi: Eingeschränkter Zugriff: Dies ist die Standardeinstellung für den Cockpit-Zugriffsmodus. In diesem Zugriffsmodus können Sie vom Cockpit aus nicht auf den Webbenutzer zugreifen

Als schnelle und effiziente Programmiersprache erfreut sich Go im Bereich der Backend-Entwicklung großer Beliebtheit. Allerdings assoziieren nur wenige Menschen die Go-Sprache mit der Front-End-Entwicklung. Tatsächlich kann die Verwendung der Go-Sprache für die Front-End-Entwicklung nicht nur die Effizienz verbessern, sondern Entwicklern auch neue Horizonte eröffnen. In diesem Artikel wird die Möglichkeit der Verwendung der Go-Sprache für die Front-End-Entwicklung untersucht und spezifische Codebeispiele bereitgestellt, um den Lesern ein besseres Verständnis dieses Bereichs zu erleichtern. In der traditionellen Frontend-Entwicklung werden häufig JavaScript, HTML und CSS zum Erstellen von Benutzeroberflächen verwendet

„VSCode verstehen: Wofür wird dieses Tool verwendet?“ „Als Programmierer, egal ob Sie Anfänger oder erfahrener Entwickler sind, können Sie auf den Einsatz von Codebearbeitungstools nicht verzichten.“ Unter vielen Bearbeitungstools ist Visual Studio Code (kurz VSCode) bei Entwicklern als Open-Source-, leichter und leistungsstarker Code-Editor sehr beliebt. Wofür genau wird VSCode verwendet? Dieser Artikel befasst sich mit den Funktionen und Verwendungsmöglichkeiten von VSCode und stellt spezifische Codebeispiele bereit, um den Lesern zu helfen
