PHP's Chinese character conversion: GBK-> BIG5

zhaozj2021-02-16  49

PHP's Chinese character conversion has always been more troublesome. First of all, it is necessary to say two points: 1.GBK's traditional word is not BIG5, but general traditional characters have corresponding BIG code 2. A GBK code does not necessarily have a corresponding BIG5 code. So generally irreversible conversion

This class has a built-in QSWHSTR formatted string qswhfile formatted a file QSWHDIR formatted all files in the directory (except for. QSWH, it is the backup of the original document)

QSWHBIG5.PHP from here] http://www.blueidea.com/user/qswh/qswhbig5.zip

qswhdata = file ($ filename);} Function QSWHSTR ($ GB, $ FAIL = "??") { / ****** (Qiushuiwuhen 2002-9-6) ****** / $ RET = "" "; for ($ I = 0; $ I 127) {$ = ORD (Substr ($ GB, $ I, 1)); $ TMP = $ THIS-> QSWHDATA [ $ P-128]; for ($ J = 0; $ J = $ Q) Break; if ($ k == $) $ = CHR (HEXDEC (Substr ($ TMP, $ J 2, 2)))). Chr (HEXDEC (Substr ($ TMP, $ J 4, 2 ))))); ELSE IF ($ FAIL == ") $ Q = CHR ($ P) .chr ($ Q); Else $ = $ FAIL;} else $ = CHR ($ P); $ RET. = $} Return $ RET;} Function Qswhfile ($ filename, $ fund = "??") {/ ****** (Qiushuiwuhen 2002-9-6) ****** / if (! File_exists ($ FileName)) Copy ($ FileName, $ FileName. ". qswh"); $ fp = fopen ($ FileName, "R "); $ TMP = FREAD ($ FP, FileSize) )); Rewind ($ fp); fwrite ($ fp, $ 10-> QSWHSTR ($ TMP, $ FAIL)); fclose ($ fp);} Function Qswhdir ($ DIRNAME, $ FAIL = "??") { / ****** (Qiushuiwuhen 2002-9-6) ****** / $ d = DIR ($ dirname); while ($ entry = $ d-> read ()) {if ($ entry == "." | $ entry == ".") Continue; $ entry = $ dirname. "/". $ entry; Is_dir ($ entry)) $ this-> qswhdir ($ Entry, $ fail); Else {IF (Substr ($ ENTRY, -5)! = ". qswh") $ this-> qswhfile ($ Entry, $ FAIL) }}} $ D-> close (); return $ c;}} Example: $ Words = "Qiu Water no hate"; $ qswh = new qswhbig5 ("qswhbig5.php"); // qswhbig5.php, province parameter

Echo ("

Select the encoded BIG5 View:" $ qsWh-> qswhstr ($ word)); echo ("/ N encoding a directory:". $ qsWh-> qswhdir ("test"); echo "/ n encoding one file:" $ qswh-> qswhfile ("index.htm")); use instructions: qswhstr Representative Represents the word in QSWHSTR If there is no corresponding BIG5 will replace the word, if it is empty, keep it After the word will format the file, remember to modify the content-type in <meta to BIG.</p> <p>PS. This article is now limited to the 9CBS document center, for example to reprint, please contact the author, otherwise the consequences are at your own risk.</p></div><div class="text-center mt-3 text-grey"> 转载请注明原文地址:https://www.9cbs.com/read-28063.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="28063" 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.036</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 = 'EGsBDfUVcdImqfEeOaZFi_2FiMjDe_2BrU9yKfl29xXu9y68NVXXcjoEZtsMNG5UpbtP5u2Ill9COGj4AxlfbYNQUg_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>