首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何用Unicode编写程序?

如何用Unicode编写程序?
EN

Stack Overflow用户
提问于 2012-08-16 20:32:41
回答 1查看 654关注 0票数 2

来自Java规范SE 7版

§3.1 Unicode

程序使用Unicode字符集编写。

§3.2 词汇翻译

使用以下三个词法转换步骤,将原始Unicode字符流转换为一系列标记.

我很困惑,因为我用我的本机字符编码(Windows-1252)编写了我的源代码,规范提到了(?)所有这些都从原始Unicode字符流开始,然后执行词法转换(包括Unicode转义转换)。

他们提到,Unicode转义可以用来包含仅使用ASCII字符的任何Unicode字符;如果执行先前的转换,我认为它们引用Unicode字符集子集中的ASCII字符,这是有意义的。

以前是否有将源文件写入Unicode的编码的转换?

有些信息与此相关,但我认为这更像是运行时的文本处理,而不是编译过程:

转换非Unicode文本

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-08-16 20:59:48

基本上,规范的意思是,您只能在源文件中使用Unicode字符。它没有定义这些字符实际上是如何被编码成字节的,这取决于您和您正在使用的平台。

基本上,编译器内部的情况是,源文件作为字节流从磁盘读取,然后将这些字节转换为Java的Unicode字符的内部表示形式。它将源文件的原始字节转换为Unicode字符的方式基于传递给javacjavac选项。如果没有设置-encoding选项,它将使用平台的默认编码。

现在还需要注意的是,在编译器将源代码字节转换成字符之后,它还会执行另一步,将字符文本(例如\u00a5123)转换为适当的单个Unicode字符。这实际上是您在问题中引用的3.2节中提到的三个步骤中的第一个步骤。这样,就可以只使用普通的ASCII字符来表示源中的任何Unicode字符。

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/11995021

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档