问题标签 [unicode]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
3 回答
3410 浏览

sql-server-2005 - SQL Server 2005 / XML 存储过程 - Unicode 到 ascii?(异常 0xc00ce508)

我这里有一个 MSSQL2005 存储过程,它应该将 XML 消息作为输入,并将其内容存储到表中。表字段是 varchars,因为我们的 delphi 后端应用程序无法处理 unicode。现在,传入的消息采用 ISO-8859-1 编码。一切都很好,直到超过 128 个标准集的字符被包括在内(在这种情况下,ÄÖäö,它是芬兰语的一个组成部分)。这会导致数据库服务器引发异常 0xc00ce508。数据库的默认值以及表和字段的排序规则设置为 latin1,这应该与 ISO-8859-1 相同。

使用 XML 子系统解析 XML 消息,如下所示:

以前,存储过程使用 nvarchar 进行输入,但由于这会导致古老的后端应用程序(Delphi 5 + ODBC)出现问题,我们不得不将字段切换为 varchars,此时一切都崩溃了。

我还尝试在开始时将 nvarchar 转换为 varchar,但结果是一样的。

0 投票
2 回答
3103 浏览

winapi - GetPrivateProfileString 奇数

我只是在修补从 .NET 调用 kernel32 中的 GetPrivateProfileString 和 GetPrivateProfileSection 并遇到了一些我不明白的奇怪问题。

让我们从这个咒语开始:

如果我传递一个 lpApplicationName(部分),没有 lpKeyName 和 lpDefault,我应该得到该部分的所有密钥,并且确实我这样做了:50% 的时间。

如果 ini 文件的 lpApplicationName 从第一行开始,则缓冲区不返回任何内容。如果 lpApplicationName stats 在文件的第二行,它会返回预期值。

起初我虽然在 Declare 中使用 W 版本和 Unicode,但更改这些似乎没有任何效果。

我错过了什么?

0 投票
7 回答
4636 浏览

delphi - Delphi 2009 + Unicode + 字符大小

我刚拿到 Delphi 2009,之前读过一些关于由于切换到 Unicode 字符串而可能需要修改的文章。大多数情况下,提到 sizeof(char) 不再保证为 1。但是为什么这对于字符串操作会很有趣呢?

例如,如果我使用 AnsiString:='Test' 并对 String (现在是 unicode)执行相同的操作,那么我得到 Length() = 4 这两种情况都是正确的。在没有对其进行测试的情况下,我确信所有其他字符串操作函数的行为方式都相同,并在内部决定参数是 unicode 字符串还是其他任何东西。

如果我进行字符串操作,为什么我会对 char 的实际大小感兴趣?(当然,如果我使用字符串作为字符串而不存储任何其他数据)

谢谢你的帮助!霍尔格

0 投票
7 回答
58102 浏览

pdf - PDF 中的 Unicode

我的程序根据要求生成相对简单的 PDF 文档,但是我遇到了 unicode 字符的问题,比如汉字或奇怪的数学符号。要在 PDF 中编写普通字符串,请将其放在括号中:

还可以选择使用八进制代码转义字符:

但这最多只能包含 512 个字符。你如何编码或转义更高的字符?我看过对字节流和十六进制编码字符串的引用,但我读过的所有引用似乎都不愿意告诉我如何实际去做。


编辑:或者,给我指出一个很好的 Java PDF 库,它将为我完成这项工作。我目前使用的是 gnujpdf 的一个版本(我已经修复了几个错误,因为原作者似乎已经离开了),它允许您针对 AWT 图形界面进行编程,理想情况下任何替换都应该这样做相同。

替代方案似乎是 HTML -> PDF,或基于段落和框的编程模型,感觉非常像 HTML。iText 是后者的一个例子。这意味着重写我现有的代码,我不相信他们会给我同样的布局灵活性。


编辑 2:我之前没有意识到,但是 iText 库有一个 Graphics2D API,并且似乎可以完美地处理 unicode,所以这就是我将要使用的。虽然这不是问题的答案,但它为我解决了问题。


编辑 3: iText 对我来说工作得很好。我想教训是,当面对看似毫无意义的困难时,寻找比你更了解它的人。

0 投票
6 回答
14173 浏览

unicode - UTF-8、UTF-16 和 UTF-32 可以存储的字符数是否不同?

好的。我知道这看起来像是典型的“他为什么不直接谷歌搜索或访问www.unicode.org并查找它?” 问题,但是对于这样一个简单的问题,在检查了两个来源后,我仍然无法找到答案。

我很确定所有这三种编码系统都支持所有的 Unicode 字符,但在我在演示文稿中提出该声明之前,我需要确认它。

额外问题:这些编码在可以扩展支持的字符数上是否不同?

0 投票
8 回答
2690 浏览

c++ - 您如何编写对 UTF-8 安全的代码?

我们有一组为 ASCII 字符集开发的应用程序。现在,我们正试图在冰岛安装它,但遇到了冰岛字符被搞砸的问题。

我们正在解决我们的问题,但我想知道:是否有一个很好的“指南”来编写专为 8 位字符设计的 C++ 代码,并且在提供 UTF-8 数据时可以正常工作?

我不能指望每个人都阅读整个 Unicode 标准,但如果有更容易理解的内容,我想与团队分享,这样我们就不会再遇到这些问题了。

此时重写所有应用程序以使用 wchar_t 或其他字符串表示形式是不可行的。我还会注意到这些应用程序通过网络与使用 8 位字符的服务器和设备进行通信,因此即使我们在内部使用 Unicode,我们仍然会在边界处遇到翻译问题。在大多数情况下,这些应用程序只是传递数据。除了从一个地方复制到另一个地方之外,他们不会以任何方式“处理”文本。

使用的操作系统是 Windows 和 Linux。我们使用 std::string 和普通的 C 字符串。(不要让我为任何设计决定辩护。我只是想帮助解决这个烂摊子。)


以下是建议的清单:

0 投票
3 回答
2641 浏览

unicode - 在 vbscript 文件中键入双字节字符

我需要将 → (&rarr) 转换为可以键入 ANSI VBScript 文件的符号。我正在编写一个脚本,该脚本使用正则表达式将一组选定的 htmlcode 转换为其实际的双字节符号。许多语言使用“\0x8594;”来实现这一点……VBScript 中的等价物是什么?

0 投票
5 回答
69916 浏览

c# - 如何将 Unicode 字符转换为其 ASCII 等效字符

这是问题所在:

在 C# 中,我从旧的 ACCESS 数据库中获取信息。.NET 在将内容交给我之前将数据库的内容(在此问题中为字符串)转换为 Unicode。

如何将此 Unicode 字符串转换回它的 ASCII 等价物?


编辑
Unicode char 710 确实是 MODIFIER LETTER CIRCUMFLEX ACCENT。这里的问题更精确一点:


这是我尝试过的(我现在明白为什么这不起作用......):

但这不会导致 94 而是一个值为 63 的字节......
这是一个新的尝试,但它仍然不起作用:


解决方案
感谢csgerobzlm指出正确的方向,我在这里解决了问题。

0 投票
13 回答
71972 浏览

windows - 将“tree /f /a”结果保存到支持 unicode 的文本文件

我正在尝试在 Windows 命令行中使用 tree 命令来生成一个列出目录内容的文本文件,但是当我通过管道输出时,unicode 字符会被填满。

这是我正在使用的命令:

控制台窗口中的结果很好:

但是文本文件不好:

我怎样才能解决这个问题?理想情况下,文本文件将与控制台窗口中的输出完全相同。

我尝试了使用 /U 开关运行命令行的 Chris Jester-Young 的建议(发生了什么事,你删除了它吗?),它看起来正是我需要的,但它似乎不起作用。我尝试在 VS2008 和记事本中打开文件,都显示相同的错误字符。

0 投票
2 回答
2090 浏览

java - Java, unicode and fonts

I've looked at the java documentation and scoured the net for information on java's support for international characters with specific fonts (such as Monospace), but haven't been able to get a clear concrete answer.

There has been a change between java 1.4 and java 1.5/1.6. For example, in java 1.4 if you set the font on a JTextArea to Monospace, it won't be able to handle foreign characters (get rectangles instead), but in java 1.5/1.6 it seems to work fine.

Are these differences/improved support clearly documented anywhere?

Thanks