Javascript-String in uxxxx

WBOY
Freigeben: 2023-05-21 10:48:37
Original
829 Leute haben es durchsucht

Unicode ist einer der Standards für die Zeichenkodierung in der Informatik. Er definiert eine Möglichkeit, Zeichen numerisch darzustellen. In Unicode hat jedes Zeichen eine entsprechende Zahl. Diese Zahl wird als Unicode-Codepunkt bezeichnet und normalerweise hexadezimal ausgedrückt.

Wenn wir in JavaScript Unicode-Codepunkte verwenden müssen, um einige Sonderzeichen darzustellen, drücken wir diese normalerweise in der Form uXXXX aus. Unter diesen ist XXXX eine vierstellige Hexadezimalzahl, die den Unicode-Codepunkt des entsprechenden Zeichens darstellt. uXXXX 的形式。其中,XXXX 是一个 4 位的 16 进制数,表示对应字符的 Unicode 码点。

如果我们有一串字符串,而其中包含了一些特殊字符,我们可以将这些字符转换为对应的 Unicode 码点。JavaScript 中提供了一些内置方法来完成这个任务。

1. String.charCodeAt()

String.charCodeAt() 方法可以返回字符串中指定位置的字符的 Unicode 码点。例如:

let str = "hello world";
console.log(str.charCodeAt(0)); // 104,h 的 Unicode 码点是 104
Nach dem Login kopieren

我们可以使用一个循环将整个字符串遍历一遍,并将每一个字符的 Unicode 码点转换为 uXXXX 的形式。例如:

let str = "hello world";
let unicodeStr = "";
for (let i = 0; i < str.length; i++) {
  // 将每一个字符的 Unicode 码点转换为 4 位的 16 进制数,然后补 0,最后拼接到结果字符串中
  unicodeStr += "\u" + ("0000" + str.charCodeAt(i).toString(16)).slice(-4);
}
console.log(unicodeStr); // u0068u0065u006cu006cu006fu0020u0077u006fu0072u006cu0064
Nach dem Login kopieren

2. String.codePointAt()

String.codePointAt() 方法可以返回字符串中指定位置的字符的 Unicode 码点,与 String.charCodeAt() 不同的是,它可以正确处理大于 16 位的 Unicode 码点。例如:

let str = "?";
console.log(str.charCodeAt(0)); // 55362,这个码点需要使用 2 个 16 进制数表示,而 charCodeAt() 返回的是第一个 16 进制数的码点
console.log(str.codePointAt(0)); // 134071,codePointAt() 返回整个码点
Nach dem Login kopieren

使用 String.codePointAt() 方法转换字符串中所有的字符为 Unicode 码点,则可以按照类似上面的方式进行遍历:

let str = "hello ??? world";
let unicodeStr = "";
for (let i = 0; i < str.length; i++) {
  let codePoint = str.codePointAt(i);
  // 如果该字符是大于 16 位的 Unicode 码点,则需要分组转换
  if (codePoint > 0xffff) {
    i++; // 需要跳过下一个位置
    // 将码点的高 16 位和低 16 位分别转换为 4 位的 16 进制,然后拼接到结果字符串中
    unicodeStr += "\u" + ("0000" + (codePoint >> 16).toString(16)).slice(-4) +
      "\u" + ("0000" + (codePoint & 0xffff).toString(16)).slice(-4);
  } else {
    // 将码点转换为 4 位的 16 进制数,然后补 0,最后拼接到结果字符串中
    unicodeStr += "\u" + ("0000" + codePoint.toString(16)).slice(-4);
  }
}
console.log(unicodeStr); // u0068u0065u006cu006cu006fu0020ud842udfb7ud842udfb7ud842udfb7u0020u0077u006fu0072u006cu0064
Nach dem Login kopieren

上面的代码中,我们首先判断当前字符的码点是否大于 16 位,如果是,则需要将其高 16 位和低 16 位分别进行转换,然后拼接到结果字符串中。如果不大于 16 位,则直接将其转换为 4 位的 16 进制数,然后拼接到结果字符串中。

总结来说,JavaScript 中可以使用 String.charCodeAt() 和 String.codePointAt() 方法来将字符串中的字符转换为 Unicode 码点,并使用 uXXXX

Wenn wir eine Zeichenfolge haben, die einige Sonderzeichen enthält, können wir diese Zeichen in die entsprechenden Unicode-Codepunkte konvertieren. JavaScript bietet einige integrierte Methoden, um diese Aufgabe zu erfüllen. 🎜

1. String.charCodeAt()

🎜Die Methode String.charCodeAt() kann den Unicode-Codepunkt des Zeichens an der angegebenen Position in der Zeichenfolge zurückgeben. Zum Beispiel: 🎜rrreee🎜Wir können eine Schleife verwenden, um die gesamte Zeichenfolge zu durchlaufen und den Unicode-Codepunkt jedes Zeichens in die Form uXXXX umzuwandeln. Beispiel: 🎜rrreee

2. String.codePointAt()

🎜String.codePointAt() kann im Gegensatz zu String.charCodeAt() den Unicode-Codepunkt des Zeichens an der angegebenen Position zurückgeben. Es können Unicode-Codepunkte, die größer als 16 Bit sind, korrekt verarbeitet werden. Zum Beispiel: 🎜rrreee🎜Verwenden Sie die Methode String.codePointAt(), um alle Zeichen in der Zeichenfolge in Unicode-Codepunkte umzuwandeln. Anschließend können Sie auf ähnliche Weise wie oben beschrieben durchlaufen: 🎜rrreee🎜Im obigen Code ermitteln wir zunächst die Ist der Codepunkt des aktuellen Zeichens größer als 16 Bit? Wenn ja, müssen die oberen 16 Bit und die unteren 16 Bit separat konvertiert und dann in die Ergebniszeichenfolge eingefügt werden. Wenn sie nicht größer als 16 Ziffern ist, wird sie direkt in eine 4-stellige Hexadezimalzahl umgewandelt und dann in die Ergebniszeichenfolge eingefügt. 🎜🎜Zusammenfassend lässt sich sagen, dass Sie die Methoden String.charCodeAt() und String.codePointAt() in JavaScript verwenden können, um Zeichen in einer Zeichenfolge in Unicode-Codepunkte umzuwandeln und sie in der Form uXXXX darzustellen. Wenn die Zeichenfolge Unicode-Codepunkte enthält, die größer als 16 Bit sind, müssen Sie die Methode String.codePointAt() verwenden, um die oberen 16 Bits und die unteren 16 Bits in 4-stellige Hexadezimalzahlen umzuwandeln. 🎜

Das obige ist der detaillierte Inhalt vonJavascript-String in uxxxx. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage
Über uns Haftungsausschluss Sitemap
Chinesische PHP-Website:Online-PHP-Schulung für das Gemeinwohl,Helfen Sie PHP-Lernenden, sich schnell weiterzuentwickeln!