将 Unicode 代码点转换为 Excel 电子表格中的相应字符

将 Unicode 代码点转换为 Excel 电子表格中的相应字符

我使用CHAR()函数将扩展 ASCII 值转换为字符。我使用什么将 Unicode 代码点转换为字符?

我正在制作希伯来语转换表。例如,代码点 1489 ( U+05D1 )是字母“Bet”。我在 A 列中有 1489,并且想在 B 列中显示 Bet。

答案1

我认为你必须自己做函数,VBA 有一个从代码中获取字符的函数,但我不知道工作表函数。因此,只需在 Excel 文件的模块中放入此函数:

Function Unicode(val As Long)
   Unicode = ChrW(val)
End Function

然后你可以从你的工作表中调用它=Unicode(A1)

用户定义函数的结果

如果您的 Excel 具有能够显示您的字符的字体,那么您将看到它。

(如果您的数字是十六进制):

Function Unicode(val As String)
   Unicode = ChrW("&H" & val)
End Function

答案2

我今天遇到了这个小问题,因此这里有一个更新:

Excel 2013引入了函数 UNICHAR(),该函数返回以十进制表示的 Unicode 值的字符。函数 UNICODE() 则相反,返回字符的 Unicode 值。此功能在早期 Excel 版本(包括 Office for Mac 2011)中不可用。

然而,在开源软件的当前版本中,仍提供完全相同的功能LibreOffice Calc(和OpenOffice Calc, 我想)。

例如,您有一个很长的列“A”,其中包含十六进制 Unicode 值(不带“U+”),并且想要列“B”中的字符。由于 UNICHAR 需要十进制值,因此在公式中将其与转换函数 HEX2DEC() 结合使用。因此,在单元格 B1 中输入公式:

=UNICHAR (HEX2DEC ($A1))

或者,如果值已经是十进制格式:

=UNICHAR ($A1)

要将公式应用于 B1 下方的所有单元格,请双击突出显示的单元格框架左下角的小手柄(适用于 Calc 和 Excel)。使用尽可能多覆盖 Unicode 字形的字体格式化该列,例如 MS Arial Unicode(而不是“普通”的 Arial)。就是这样。

(可能会出现问题,单元格显示公式本身而不是结果。在这种情况下,需要将列格式化为内容类型“文本”或“常规”。)

附言:

苹果数字 '09CHAR() 确实适用于 Unicode 值。公式为:

=CHAR (HEX2DEC(A))

或者

=CHAR (A)

答案3

只是为了向任何需要创建补充字符的人澄清:

  1. 对于 Excel 2013 及更高版本,该UNICHAR()函数(如TehMacDawg 的回答) 可以很好地处理这个问题。您只需传入所需的 Unicode 代码点:

    =UNICHAR(128126)
    

    应产生:

相关内容