如何创建一个可由html/javascript识别的新Web字符符号

How to create a new web character symbol recognizable by html/javascript?

本文关键字:识别 javascript 字符 Web html 符号 创建 何创建 一个      更新时间:2023-09-26

我在这里检查了很多问题,但没有一个有我的答案。如果您引导我走上正确的道路,我将不胜感激。

我喜欢制作一个新符号(不是字体或与任何字母表相关),例如创建一种新的语言字母表,可以在浏览器中以 html 或 javascript 代码的形式识别或翻译。

换句话说,为多个字符分配单个自定义字符。E.X 1 通道转换为 5 通道)

我假设我需要先制作字体,然后分配该字符。您建议什么程序或最佳方法是什么?

编辑:一个更好的例子:创建一个新字符,如 ¢(cent),具有实体名称 --> & c e n t;和实体编号 --> & # 1 6 2;

编辑2:谢谢大家的回复。我正在尝试检查您的链接和建议。据我了解,可能存在浏览器兼容性问题。那么,在保存在服务器上的文本文件中创建新符号,当用户查看文件时,javascript 将这些符号转换为单词或其他标准字符怎么样?

编辑3:很抱歉,伙计们,你们都很棒。这个例子可能会澄清一些事情。

创建一个分配给"AB"的新符号。那么一个字符可以翻译成两个字符?

编辑4:这是基于贾里德的回答。这确实适用于 Z 和 P。现在我应该如何将我的自定义字体添加到此文件中(将 Z 和 P 替换为我自己的字体)?假设 Z 和 P 是我定制的符号

 <!DOCTYPE html
 PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
 "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
 [
  <!ENTITY Z "AB">
 <!ENTITY P "DE">
   ...
  ]>
 <html xmlns="http://www.w3.org/1999/xhtml">
 <head>
<title>Extending XHTML - Example 1</title>
 </head>
  <body>
   <p>My symbols are &Z; and &P;</p>
  </body>
</html>

这可能是您的一个选择,我不太确定。如果你使用XHTML和/或XLST,你可能会在自定义字符中实现你想要的东西。例如:

<!DOCTYPE html
  PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
  "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"
[
  <!ENTITY mailto "mailto:">
  <!ENTITY username "gabriel">
  <!ENTITY arobase "@">
  <!ENTITY hostname "gabsoftware">
  <!ENTITY tld ".com">
  <!ENTITY email "&username;&arobase;&hostname;&tld;">
]>
<html xmlns="http://www.w3.org/1999/xhtml">
  <head>
    <title>Extending XHTML - Example 1</title>
  </head>
  <body>
    <p>My email is &email;</p>
  </body>
</html>

http://jfcoder.com/test/entities.xhtml

你会看到SGML ENTITY元素,顺便说一下,我相信HTML5将不再属于它。您是否可以在这些实体中嵌入图像或通过XLST转换来实现您的目标,我还没有弄清楚。

有关更多示例和选项,请参阅此页面:

使用 XML、XSLT、实体、CDATA 部分和 JavaScript 扩展 XHTML

您必须使用 SGML 实体声明来创建新的字符实体。 这应该适用于从 SGML 继承的所有语言,包括 HTML 和 XML,但我一定会在所有支持的用户代理中对此进行测试以确保。

http://en.wikipedia.org/wiki/XML_entity

如果你使用标准字符(A-Z,A-Z,0-9,!,@,#,$等),你可以创建一个PHP变量,该变量在页面渲染时具有翻译(JavaScript是在页面渲染/下载之后)。

<?php
  $from = "A";
  $into = "ABCD";
  $content = "This is A whole lot of page content";
  echo preg_replace("$from, $into, $content);
 // will output "This is ABCD whole lot of page content"
?>

我想也可以使用特殊字体,甚至可以$from换成<img src=pic/of/chars.png" />