Write an HTA to convert the resource file format

xiaoxiao2021-03-06  73

Java's resource file a design purpose is convenient to provide multi-language support, but its support for Unicode is very funny. Many people see such a resource file will feel very familiar:

tongren.oa.system.user.userNameExists = / u7528 / u6237 / u540D / u5DF2 / u7ECF / u5B58 / u5728 / uFF0C / u8BF7 / u91CD / u65B0 / u9009 / u62E9 / u4E00 / u4E2A / u7528 / u6237 / u540Dtongren.oa.system .role.roleNameExists = / u89D2 / u8272 / u540D / u5DF2 / u7ECF / u5B58 / u5728 / uFF0C / u8BF7 / u91CD / u65B0 / u9009 / u62E9 / u4E00 / u4E2A / u89D2 / u8272 / u540Dtongren.oa.system.role.UserAssignedToRole = / U6307 / U5B9A / U89D2 / U8272 / U4E0D / U80FD / U5220 / U9664 / UFF0C / U56E0 / U4E3A / U7528 / U6237 {0} / U62E5 / U6709 / U8FD9 / U4E2A / U89D2 / U8272

My day, how do you read it? Also use the tool to turn it back to Unicode to see the Chinese characters, and the modification will turn back?

Located at last afternoon, I wrote a HTA tool to edit the resource file, and now I can finally modify directly. Automatic conversion is saved. Save the following code as a file that is HTA:

</ title> </ head> <body> <input type = file οnchange = "getFile () id = fileselector> <script language =" javascript "> <! - var fso VAR OpenFileforReading = 1 var openfileforwriting = 2 var srcfileForAppending = 8 var srcfilepath = ""; fso = new activiXObject ("scripting.filesystemObject");</p> <p>Function getFile () {if (! fso.fileexists (fileselector.value) {alert ("Specify file does not exist or has been removed"); Event.ReturnValue = false; return;} srcfilepath = fileselector.value; var TextStream = fso.OpentextFile (srcFilePath, OpenFileForReading, true); viewer.value = textStream.ReadAll (); textStream.Close (); document.getElementsByName ( "showType") [0] .checked = true; buttonSaveAs.disabled = false; buttonSave.disabled = false; showAsText ();} function showAsText () {document.getElementsByName ( "showType") [1] .checked = true; viewer.value = unescape (viewer.value.replace (/// u / g , "% u"))} Function showasproperties () {document.getlementsByname ("ShowType") [0] .Checked = true; viewer.value = unescape (escape (viewer.value) .Replace (/% U / g, "// u"))} function saveFile () {showAsProperties (); var fileStillExists = fso.FileExists (srcFilePath); if (fileStillExists) fso.CopyFile (srcFilePath, fileSelector.value "bak."); var textStream = fso .Opentextfile (srcfilepath, openfileforwriting, true); TextStream.write; TextStream.close (); ALE RT ("Resource File has been saved success" (filestillexists? (" = srcFilePath.substr (srcFilePath.lastIndexOf ( "//") 1); var newFileName = prompt ( "Please enter a new file name", srcFileName); var newFilePath = srcFilePath.replace (srcFileName, newFileName); if (srcFileName = = NewFileName) {IF ("You confirm that you want to overwrite the original file? ")) SaveFile ();} else if (fso.fileexists (newfilepath)) {if (" You confirm you want to overwrite file " newfilepath "? ")) {var textstream =</p> <p>fso.OpentextFile (newFilePath, OpenFileForWriting, true); textStream.Write (viewer.value); textStream.Close (); srcFilePath = newFilePath; else {var textStream alert ( "resource file has been successfully saved")}} = fso.OpentextFile (newFilePath, OpenFileForWriting, true); textStream.Write (viewer.value); textStream.Close (); fileSelector = fileSelector.value; srcFilePath = newFilePath; alert ( "resource file has been successfully saved")}} setInterval ( "document. Title = 'current file:' srcfilepath ", 500); // -> </ script> <textarea ID = viewer style =" width: 90%; Height: 90%> </ textarea> <br> < Input type = radio name = "showType" id = "asproperties" οnclick = "showasproperties ()> <label for =" asproperties "> resource file format </ label></p> <p><Input Type = Radio Name = "ShowType" id = "astext" οnclick = "οnclick =" οnclick = "" "> <label for =" astext "> text format </ label> <input type = button value =" save file "οnclick = "Savefile ()" id = butt = Button value = "Save As File" οnclick = "saveas ()" id = buttonsaveas disk> </ body> </ html></p></div><div class="text-center mt-3 text-grey"> 转载请注明原文地址:https://www.9cbs.com/read-92180.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="92180" 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.043</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 = 'PYQWqoRpTnmKGqVZ6QNR5TXwuIgutBVxT_2BEmEhd_2FNJuWnNY_2FjOahbOAkeVt2LCdMkAK6YdBm6_2Fj_2BNUQ9sFafZg_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>