当前位置: 首页 > 面试题库 >

我们可以在ASCII和Unicode之间切换吗

邹毅
2023-03-14
问题内容

我遇到了“
char变量为Unicode格式,但也很好地采用/映射到ASCII”。有什么需要提及的?当然,ASCII是1个字节,而Unicode是2。并且Unicodeitself本身包含ASCII代码(默认情况下-
其标准)。那么,在某些语言中,char变量支持UNICODE但不支持ASCII?

另外,字符格式(Unicode /
ASCII)由我们使用的平台决定,对吗?(UNIX,Linux,Windows等)。因此,假设我的平台使用ASCII,是否无法切换到Unicode,反之亦然?


问题答案:

Java在内部使用Unicode。总是。实际上,它大多数时候都使用UTF-16,但是目前还不多。

不能在 内部使用ASCII(String例如)。您 可以 用Unicode表示可以用ASCII表示的任何字符串,因此这不成问题。

该平台 唯一
起作用的地方是Java必须在未指定编码的情况下选择一种编码。例如,当您创建一个FileWriterString值写入String时:此时,Java需要使用编码来指定应如何将特定字符映射到字节。如果未指定,则使用平台的默认编码。该默认编码
几乎从来都不是ASCII 。大多数Linux平台使用UTF-8,Windows 通常 使用某些ISO-8859-
*派生词(或其他特定于区域性的8位编码),但是当前的操作系统都没有使用ASCII(仅仅是因为ASCII不能代表很多重要字符) 。

实际上,如今,纯ASCII几乎是无关紧要的:没有人使用它。ASCII
作为大多数8位编码(包括UTF-8)映射的公共子集很重要:在许多编码中,较低的128个Unicode代码点将1:1映射为0-127的数值。但是不再使用纯ASCII(
定义 值128-255 )。

附带说明一下,Java
9有一个内部优化,称为“紧凑字符串”,其中仅包含用Latin-1表示的字符的字符串每个字符使用一个字节,而不是2。这种优化对于各种“计算机说话”非常有用例如XML和类似的协议,其中大部分文本位于ASCII范围内。但这对开发人员也是完全透明的,因为所有处理都是在String类内部完成的,因此从外部看不到。



 类似资料:
  • 我有一个网站,我托管在Shopify中的,然后我通过Angular制作了一个GET到一个网站。 有棱角的 局部结果 做得很好 我一直得到 拒绝连接到http://d.biossusa.com/api/distributor?key= ******' ,因为它违反了以下内容安全策略指令:"连接-src'自我'https://*wss://*"。 将我的API站点从HTTP转换为HTTPS可能有点昂贵

  • 问题内容: 我无法在不丢失数据的情况下将以下Unicode转换为ASCII: 我尝试了,他们不会这样做。 有人有建议吗? 问题答案: Unicode字符,并且没有任何对应的ASCII值。因此,如果您不想丢失数据,则必须以某种有效的ASCII方式对数据进行编码。选项包括: 所有这些都是ASCII字符串,并且包含来自原始Unicode字符串的所有信息(因此可以将它们全部逆转而不会丢失数据),但是对于最

  • 问题内容: 大家好,我仍在从事这个libgdx项目的工作,我试图找出将屏幕切换到游戏屏幕的最佳方法。现在,当单击一个按钮时,我需要它来切换到游戏屏幕。我已经看到了一些扩展游戏类的实现方式,但是我不确定这里最好的方法是什么。如果您看到一些可以改进的代码,请告诉我。 这是主要的应用程序类: 问题答案: 这就是我始终执行屏幕切换的方式: 首先,主类需要扩展Game(From ),然后您需要具有一个新的t

  • 大家好,我仍然在做这个libgdx项目,我正在努力找出最好的方法来改变我的游戏屏幕现在,当一个按钮被点击时,我需要它转换到游戏屏幕。我见过一些扩展game类的实现,但我不确定从这里开始最好的方法是什么。如果你看到一些可以改进的代码,请让我知道。 以下是主要的应用程序类:

  • 我在class1中创建了一个场景,然后在Class2中创建了一个scene2。如何在两者之间切换? 这是第二节课,我有另一个场景。

  • 我试图在数据库中创建一个新记录,但是在我需要获取另一个记录并从中获取一些数据并将其设置为新记录之前 我的错误是什么?如何纠正?