Path: csiph.com!weretis.net!feeder8.news.weretis.net!news.mb-net.net!open-news-network.org!.POSTED.178.197.200.35!not-for-mail From: Thomas 'PointedEars' Lahn Newsgroups: de.comp.lang.javascript Subject: Re: String-Literals automatisiert in ASCII konvertieren? Supersedes: <2655808.mvXUDI8C0e@PointedEars.de> Date: Thu, 29 Sep 2022 11:03:24 +0200 Organization: PointedEars Software (PES) Lines: 38 Message-ID: <12070813.O9o76ZdvQC@PointedEars.de> References: <877d1pm8w6.fsf@vagabond.tim-landscheidt.de> Reply-To: Thomas 'PointedEars' Lahn Mime-Version: 1.0 Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: 8Bit Injection-Info: gwaiyur.mb-net.net; posting-host="178.197.200.35"; logging-data="932118"; mail-complaints-to="abuse@open-news-network.org" User-Agent: KNode/4.14.10 Cancel-Key: sha1:uPOVo4XXS6ZUtyLcICQc52+M2q0= Cancel-Lock: sha1:EUHwgezKm0z389zd9kYsLtK8Z68= X-User-ID: U2FsdGVkX1/8JKxUaRC4niArpEtIiuDfHT8zLjzJYZEcbAlTs/bZeg== Face: iVBORw0KGgoAAAANSUhEUgAAADAAAAAwBAMAAAClLOS0AAAAGFBMVEXTxa4RFk5dUWANED8PFEfy7+MGBiW+n3ZNF/QuAAACaElEQVQ4jVXUwVOcMBQG8Dc7Rc4PUntdWV2uxjDpGaGeozOp1woar4jd5t/v9wLstMwsA/ntlxdCAgUc1hjTc9/JCZfGoo3wG3HdmdAWrIJRHe7GM/TmpY5VFefuVcAkkPbLIaN8rmPmjloyZxgyR3GuJ4K0AGtJ2htz8o7yqikm759fldQXaMpbDzjKAG+8v+AugVTOPO5DOjLvGtUYQwh0CPjnVMyGd+8/GfUB5nLKJDD2aLDh5HYyMDJGDwQIo2ZmZcKbowNmAdB/AzyFhrmF2MHRb0QJJfaAnwGB6orZhoykLzJtGwF/xpYxI1dswomiUj3gTuAIqCn/4C7cULwGNBtwMTk3Y4LfKB5YUaOKBKYtpplm7u0vip8tU1NWWyI/7XdcSuIDoMt6rVHMWT0DbjHPGqDqZVSa6zleLcUTcIKLoMv3ueJluALtAo9B302zPPlrtiVScRdCjXvVh3e3JpYa/jjkuC9N+LrBMlz/eAN4eQijX2EdLo6c5tGGHwLyHFtXk89dDGHwCVhG9T0S/j55AhRZgkMCmUQXJ49TnS1wnQDvw0eAh9ICeMmEFbCnPMFzjAvsWoEWEFdYEx+S0MoUZ1gT1wId8+AF3Bl2OoEu906AUHx5VLw/gXYg/x84loOah/2UYNrgiwSwGO7RfUzVBbx/kgpckumGOi6QirtD6gkLTitbnxNol47S2jVc2vsN5kPqaAHT8uUdAJM4v/DanjYOwmUjWznGfwB7sGtAtor5BgofDuzaRj4kSQAqDakTsKORa3Q3xKi3gE1fhl71KRMqrdZ2AWNNg/YOhQyrVBnb+i+nEg4bsDA+egAAAABJRU5ErkJggg== X-Face: %i>XG-yXR'\"2P/C_aO%~;2o~?g0pPKmbOw^=NT`tprDEf++D.m7"}HW6.#=U:?2GGctkL,f89@H46O$ASoW&?s}.k+&. Tim Landscheidt writes: >> gibt es einen >>„Präprozessor“, der JavaScript-Dateien einliest, String-Lit- >>erals gegebenenfalls nach ASCII umwandelt und dann wieder >>ausgibt? > > Falls Nicht-ASCII-Zeichen nur in Zeichenfolgenliteralen > (und vielleicht noch in Kommentaren) vorkommen sollten, > können wir einfach alle Zeichen nach ASCII wandeln. > > Das sollte ein geeignetes Python-3.9-Skript sein: > > with open( 'example.txt', mode='r', encoding='utf-8' )as stream: > source = stream.read() > for ch in source: > print( end=ch if ord( ch )<= 127 else rf'\u{ord(ch):04x}' ) “\u{…}” ist (im Unterschied zu “\u…”, welches schon mit ECMAScript Edition 2 [1998] eingeführt wurde) ein relativ neues syntaktisches Konstrukt (eingeführt mit ECMAScript Ed. 6 [2015]). Das Ergebnis wird daher nur von neueren Script-Engines korrekt interpretiert werden können. Bei anderen führt es entweder dazu, dass die Escape-Sequenz angezeigt wird, oder zu einem Syntaxfehler (Script kann nicht mehr compiliert werden). Bei der neueren Syntax ist es nicht erforderlich, dass führende Nullen angegeben werden, und tatsächlich werden damit Unicode-Zeichen bis zum Codepunkt U+10FFFF (statt nur U+FFFF wie bei der älteren Syntax) unterstützt. Grundsätzlich ist die Veränderung des Quelltextes hier der falsche Ansatz; stattdessen ist das Serverproblem zu lösen, was relativ einfach möglich ist. -- PointedEars | Twitter: @PointedEars2 Please do not cc me. /Bitte keine Kopien per E-Mail.