5

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

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

换句话说,为多个字符分配单个自定义字符。(例如 1 ch 转换为 5 ch)

我假设我需要先制作字体,然后分配该字符。你有什么建议或最好的方法是什么?

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

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

Edit3:对不起,你们都太棒了。这个例子可能会让事情变得清晰。

创建一个分配给“AB”的新符号。所以一个字符翻译成两个字符?

Edit4: 这是基于 Jared 的回答。这确实适用于 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>
4

3 回答 3

4

这可能是你的一个选择,我不太确定。几乎,如果您使用 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

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

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

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

于 2012-06-16T01:28:11.677 回答
1

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

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

于 2012-06-16T01:24:03.847 回答
0

如果您使用标准字符(aZ、AZ、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" />.

于 2012-06-16T03:57:44.473 回答