Chinese processing of Tomcat (3):

zhaozj2021-02-11  210

Chinese processing of Tomcat (3):

The previous nonsense, now let's analyze a few examples:

1) If you are used in JSP:

<% @ page contenttype = "text / html; charset = shift_jis"%>

He actually specifies the type of response and characters, which specifies the character encoding of Response is Shift_JIS.

When constructing String in JSP, if you do not specify String encoding, the code used by String is specified by charset; if Charset does not specify the coding of the character, then, use ISO-8859-1

Note that if you do not specify the Requset encoding, the String obtained from Request is ISO-8859-1 encoded. (The last article has been told.), He and the charSet are no relationship.

If the String's code to be output, the case where the Response's encoding is different, it is likely to appear garbled.

for example:

<% @ Page ContentType = "Text / HTML; Charset = GB2312"%> // /// Specifying Response encoding as Chinese Simplified, then all the characters to be output should be used to adapt to GB2312

</ title></p> <p></ hEAD></p> <p><body></p> <p><%</p> <p>String name = Request.getParameter ("name"); get the parameter value of the client, no specified request encoding, so it is String encoded as ISO-8859-1.</p> <p>String name1 = new string (Name.getbytes ("ISO-8859-1"), "GB2312"); // Translate into Chinese Simplified Codes</p> <p>String name2 = "Hello"; / Directly Define String, use the reponse encoding, here is GB2312.</p> <p>String name21 = new string (Name2.GetBytes ("ISO-8859-1"), "GB2312"); transformation from NAME2</p> <p>System.out.println ("Name1 IS GB2312" Name1);</p> <p>System.out.println ("Name IS ISO-8859-1" Name);</p> <p>System.out.Println ("Name21 IS Direct" Name21);</p> <p>System.out.println ("we all");</p> <p>%></p> <p><form action = "./ b.jsp" Method = "post"></p> <p><input type = "text" name = "name" value = "<% = Name1%>">></p> <p><Input Type = "Submit"></p> <p></ form></p> <p><hr></p> <p>Name1 IS GB2312 <% = Name1%> <br></p> <p>Name ISO-8859-1 <% = Name%> <br></p> <p>Name21 IS direct <% = Name21%> <br> <% = "We all"%> </ body></p> <p></ html></p> <p>result:</p> <p>In Console: (He corresponding to Response is GB2312, the Japanese system is MS932)</p> <p>Name1 IS GB2312 Hello // Name1 is a Name transformation, it is GB2312, so normal display</p> <p>Name IS ISO-8859-1 ???? / name is ISO-8859-1 unable to display</p> <p>Name21 IS direct ??????????????????? Since Name2 is encoded by the GB2312, in Name21 = New String (Name2.GetBytes ("GB2312"), "MS932")) The incorrect transformation, so it is not possible to reality if ISO-8859-1 is changed to GB2312.</p> <p>The String defined in our // jsp uses <% @ Page ContentType = "Text / HTML; CHARSET = GB2312"%> "specified by%> If not specified, ISO-8859-1 is used.</p> <p>It can be seen that the result we see in IE is the same.</p> <p>Below we will remove the <% @ page contenttype = "text / html; charset = shift_jis"%>.</p> <p>result:</p> <p>Console (This time, the consocle is encoded is GB2312, so the character encoding the GB2312 can be displayed, since String constructed in JSP is used at this time ISO-8859-1, so it cannot be displayed)</p> <p>Name1 is gb2312 Hello</p> <p>Name is ISO-8859-1 ????</p> <p>Name21 IS ???? Hello / Name2 encoding is ISO-8859-1 at this time, so the transformed Name2 is correct</p> <p>????????</p> <p>IE (this time, the response code is ISO-8859-1, so the can be displayed as ISO-8859-1, because String constructed in JSP is used at this time ISO-8859-1, so it can also be displayed)</p> <p>Name1 IS GB2312 ??</p> <p>Name is ISO-8859-1 Hello</p> <p>Name21 IS direct ???????????????????</p> <p>We</p> <p>Obviously the result is not the same! ! ! !</p></div><div class="text-center mt-3 text-grey"> 转载请注明原文地址:https://www.9cbs.com/read-4253.html</div><div class="plugin d-flex justify-content-center mt-3"></div><hr><div class="row"><div class="col-lg-12 text-muted mt-2"><i class="icon-tags mr-2"></i><span class="badge border border-secondary mr-2"><h2 class="h6 mb-0 small"><a class="text-secondary" href="tag-2.html">9cbs</a></h2></span></div></div></div></div><div class="card card-postlist border-white shadow"><div class="card-body"><div class="card-title"><div class="d-flex justify-content-between"><div><b>New Post</b>(<span class="posts">0</span>) </div><div></div></div></div><ul class="postlist list-unstyled"> </ul></div></div><div class="d-none threadlist"><input type="checkbox" name="modtid" value="4253" checked /></div></div></div></div></div><footer class="text-muted small bg-dark py-4 mt-3" id="footer"><div class="container"><div class="row"><div class="col">CopyRight © 2020 All Rights Reserved </div><div class="col text-right">Processed: <b>0.035</b>, SQL: <b>9</b></div></div></div></footer><script src="./lang/en-us/lang.js?2.2.0"></script><script src="view/js/jquery.min.js?2.2.0"></script><script src="view/js/popper.min.js?2.2.0"></script><script src="view/js/bootstrap.min.js?2.2.0"></script><script src="view/js/xiuno.js?2.2.0"></script><script src="view/js/bootstrap-plugin.js?2.2.0"></script><script src="view/js/async.min.js?2.2.0"></script><script src="view/js/form.js?2.2.0"></script><script> var debug = DEBUG = 0; var url_rewrite_on = 1; var url_path = './'; var forumarr = {"1":"Tech"}; var fid = 1; var uid = 0; var gid = 0; xn.options.water_image_url = 'view/img/water-small.png'; </script><script src="view/js/wellcms.js?2.2.0"></script><a class="scroll-to-top rounded" href="javascript:void(0);"><i class="icon-angle-up"></i></a><a class="scroll-to-bottom rounded" href="javascript:void(0);" style="display: inline;"><i class="icon-angle-down"></i></a></body></html><script> var forum_url = 'list-1.html'; var safe_token = 'PXjaLvdSg_2FlSBsNloLTZl05AhG2C0Zc6k0fWE71otwRj_2BtclYJ0eEpBnT9n0z00RoRP7v_2FHND6r5tgUNdvL9Fg_3D_3D'; var body = $('body'); body.on('submit', '#form', function() { var jthis = $(this); var jsubmit = jthis.find('#submit'); jthis.reset(); jsubmit.button('loading'); var postdata = jthis.serializeObject(); $.xpost(jthis.attr('action'), postdata, function(code, message) { if(code == 0) { location.reload(); } else { $.alert(message); jsubmit.button('reset'); } }); return false; }); function resize_image() { var jmessagelist = $('div.message'); var first_width = jmessagelist.width(); jmessagelist.each(function() { var jdiv = $(this); var maxwidth = jdiv.attr('isfirst') ? first_width : jdiv.width(); var jmessage_width = Math.min(jdiv.width(), maxwidth); jdiv.find('img, embed, iframe, video').each(function() { var jimg = $(this); var img_width = this.org_width; var img_height = this.org_height; if(!img_width) { var img_width = jimg.attr('width'); var img_height = jimg.attr('height'); this.org_width = img_width; this.org_height = img_height; } if(img_width > jmessage_width) { if(this.tagName == 'IMG') { jimg.width(jmessage_width); jimg.css('height', 'auto'); jimg.css('cursor', 'pointer'); jimg.on('click', function() { }); } else { jimg.width(jmessage_width); var height = (img_height / img_width) * jimg.width(); jimg.height(height); } } }); }); } function resize_table() { $('div.message').each(function() { var jdiv = $(this); jdiv.find('table').addClass('table').wrap('<div class="table-responsive"></div>'); }); } $(function() { resize_image(); resize_table(); $(window).on('resize', resize_image); }); var jmessage = $('#message'); jmessage.on('focus', function() {if(jmessage.t) { clearTimeout(jmessage.t); jmessage.t = null; } jmessage.css('height', '6rem'); }); jmessage.on('blur', function() {jmessage.t = setTimeout(function() { jmessage.css('height', '2.5rem');}, 1000); }); $('#nav li[data-active="fid-1"]').addClass('active'); </script>