【问题标题】:How to write copyright symbol to a file with GB2312 encoding?如何将版权符号写入 GB2312 编码的文件?
【发布时间】:2012-08-15 00:00:14
【问题描述】:

我想将版权符号写入 pdf 文件的页脚。八进制代码 \251 仅在文件的编码为拉丁文时才有效。 (英语) 当输出pdf为中文、日文、韩文时。符号印刷完全不同。我已经知道输出文件有 GB2312 编码,版权符号的代码是两字节字符 \0xAAC2 。

我一直在试图找出我应该如何打印它?我必须在 sprintf 之前将其转换为 utf16 吗?

【问题讨论】:

  • 符号很可能不是该字符集的一部分。我无法在几个不同的参考文献中找到它。你确定代码应该是 0xAAC2 吗?
  • 尝试从可以以任何 CJK 编码(不是 ANSI 或 UTF;最好是 GB2312 或 Big5)保存文件的原生中文文本编辑器(即:不支持 Unicode)中获取样本。使用它通过字符映射或类似程序制作版权字符,然后将其保存到没有任何格式的文件中,如果可能的话。最后在十六进制编辑器中查看文件。
  • @MarkRansom 我从表中得到代码here
  • 当我转到那个页面时,它告诉我 AAC2 的字符是 U+E022,这似乎不是一个有效的 unicode 字符。我在页面上的任何地方都找不到版权符号。

标签: c gb2312


【解决方案1】:

如果你使用 sprintf,我认为你可以这样做:

unsigned char one = 0xAA;
unsigned char two = 0xC2;
char output_line[20];
sprintf(output_line,"%c%c",one,two);

或者,如下所示:

sprintf(output_line,"\xaa\xc2");

【讨论】:

  • 你可以把它作为"\xaa\xc2"放在字符串文字中。
  • 实际上只是打印为 ? ?猜测它无法识别代码。
猜你喜欢
  • 1970-01-01
  • 2017-06-16
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-01-22
  • 2018-03-27
  • 1970-01-01
相关资源
最近更新 更多