日语和中文中 unicode 代码点的不同表示

2023-12-23

我正在尝试显示与 unicode 0x95E8 对应的字形。 该代码点基本上是 CJK 块(中文、日语、韩语)。

我很难知道这个特定代码点的字形表示对于日语和中文是否可能不同。

当我在 JTextArea 中显示 U+95E8 时,我能够在 linux/windows 上看到“门”字符。 但是当我尝试在我的“嵌入式设备”中显示相同的代码点时。显示的字符变为。

我想知道这个代码点 U+95E8 在所有 CJK(中文、日文、韩文)语言环境中是否应该具有统一的表示形式,或者对于其中一些语言环境是否应该有所不同。这种现象是否是因为不同设备安装的字体不同所致?我为我的无知感到抱歉,但我不太热衷于国际化。

import java.awt.*;
import java.awt.event.*;
import java.util.Locale;

import javax.swing.*;

public class TextDemo extends JPanel implements ActionListener {

    public TextDemo() {
    }

    public void actionPerformed(ActionEvent evt) {
    }

    /**
     * Create the GUI and show it.  For thread safety,
     * this method should be invoked from the
     * event dispatch thread.
     * @throws InterruptedException 
     */
    private static void createAndShowGUI() throws InterruptedException {

        JFrame frame = new JFrame(java.util.Locale.getDefault().getDisplayName());

        frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);

        Container contentPane = frame.getContentPane();
        contentPane.setLayout(new SpringLayout());

        Dimension size = new Dimension(500, 500);
        frame.setSize(size);
        JTextArea textArea = new JTextArea();

        //Font font1 = new Font("SansSerif", Font.BOLD, 20);
        //textArea.setFont(font1);

        textArea.setEditable(true);
        textArea.setSize(new Dimension(400,400));
        textArea.setDefaultLocale(java.util.Locale.SIMPLIFIED_CHINESE);

        textArea.setText("Printing U+95E8 : \u95e8");                
        contentPane.add(textArea);        
        frame.setVisible(true);
    }

    public static void main (String[] args) {
        java.util.Locale.setDefault(java.util.Locale.JAPANESE);
        javax.swing.SwingUtilities.invokeLater(new Runnable() {
            public void run() {
                try {
                    createAndShowGUI();
                } catch (InterruptedException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
            }
        });
    }
}

添加到 Jukka 的答案:

以下是有关“汉统”的更多信息:http://en.wikipedia.org/wiki/Han_unification http://en.wikipedia.org/wiki/Han_unification

有两种主要方法可以呈现所需的字形:

  1. Use a locale-specific font (means different fonts for Chinese Traditional, Chinese Simplified, Japanese, Korean). The designers of such fonts take care to do the right thing. This is Jukka's answer. As an example you can take a look at the Noto family of fonts (http://www.google.com/get/noto/cjk.html http://www.google.com/get/noto/cjk.html). Download the "Language specific fonts in OTF" files:
    • 简体中文字体是NotoSansHans-Regular.otf
    • 繁体中文字体为NotoSansHant-Regular.otf
    • 日语字体是 NotoSansJP-Regular.otf
    • 韩文字体是 NotoSansKR-Regular.otf
  2. 使用具有多个特定于区域设置的字形的通用 CJK 字体。 例如,您可以再次使用 CJK Noto 字体,即“OTF 中的多语言字体”选项。 请参阅《脚本表和语言系统记录》http://www.microsoft.com/typography/otspec/chapter2.htm http://www.microsoft.com/typography/otspec/chapter2.htm。 但是要使用字体应该包含的信息,文本渲染引擎应该了解如何处理语言设置,并且 API 应该公开它。

现在,下面的东西水平非常低。 当您使用 JTextArea 之类的东西时,您无法控制。您可以使用 JTextArea 的实现者决定执行的操作。

您可以调用组件的 setDefaultLocale ,这可能会有所帮助。无论如何,建议您这样做。 但如果您想确定发生了什么,您可以控制并指定特定于语言的字体。

我怎样才能识别我的电脑中正确的字体/环境 导致打印“门”。

你不能可靠地做到这一点。 Java 下面的层可能会执行自己的后备操作。 而且您无法合法分发 Windows 字体。

这样我就可以在我的嵌入式设备中安装相同的字体

不。使用开源、优质的字体。 Noto 字体是一个非常好的选择。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

日语和中文中 unicode 代码点的不同表示 的相关文章

随机推荐

  • 用于重新索引的 ElasticSearch 无痛脚本

    我们正在尝试使用以下无痛脚本来重新索引 Elasticsearch 中的数据 POST reindex source index metricbeat dest index metricbeat script lang painless i
  • 如何获取上传的cloudinary小部件图像信息?

    我正在使用 cloudinary 小部件在我的网站上上传图像 现在我想在上传图像时从图像中获取信息 例如该图像的路径 我可以看到上传图像时控制台日志中提供了此信息 例如 路径 v1586568667 myusername lp62llmn8
  • R 中类似 Python 的数值解包 [重复]

    这个问题在这里已经有答案了 在 Python 中 可以这样做 gt gt gt a b c 1 2 3 gt gt gt a 1 gt gt gt b 2 gt gt gt c 3 有没有办法在 R 中做到这一点 如下所示 gt a b c
  • Emacs 模式编辑 JSON

    有人知道编辑 JSON 的好 Emacs 模式吗 我正在开发的一个应用程序使用基于 JSON 的通信协议 并且良好地缩进数据并突出显示语法将在解决问题的过程中对我有很大帮助 乔什的 1json模式 http melpa milkbox ne
  • 使用 ObservableCollection 进行动态数据显示

    我不知道如何使用 ObservableCollection 显示一些点 这是我的代码
  • 防止滚动改变哈希值

    对于下面丑陋的布局示例感到抱歉 http www wthdesign net test test2 html http www wthdesign net test test2 html 我设法将我的 id 名称附加到 url 中 func
  • SearchBar,如何改变文字颜色?

    我的搜索栏有默认的灰色文本 但我希望它是白色文本 我不知道如何使用 swift 来更改范围栏文本颜色 并且您无法从情节提要中做到这一点 我发现的最接近的是 searchBarOutlet setScopeBarButtonTitleText
  • 如何将页面旋转为横向且页面内容应为纵向 iTextpdf

    我正在尝试创建一个包含 2 个以上纵向页面和横向页面的 PDF 文档 我发现页面和文本都旋转为横向 我需要防止页面内容旋转 我正在使用以下代码 Document document new Document PageSize A4 36 36
  • 改造中如何处理分页

    我正在使用改造构建一个应用程序 一切都进展顺利 但我担心 API 请求的大小 并希望使用分页将它们分开 使用 Retrofit 自动分页 API 以便默认下载所有可用数据的最佳策略是什么 首先 分页需要得到您正在使用的后端服务的支持 其次
  • Git:仅部署来自 post-receive 挂钩的目录

    按照以下指示进行操作后本文 http blog brandonevans ca post 19685508893 deploying websites with git on dreamhost我有一个接收后挂钩 当前内容如下 bin sh
  • 使用Python在OpenCV中检测MultiScale的参数

    我无法理解传递给 detectorMultiScale 的参数 我知道一般语法是 detectorMultiScale image rejectLevels levelWeights 但是 参数rejectLevels和levelWeigh
  • OpenCV 中 cv::Mat 的自定义类型

    我想使用 cv Mat 和我的自定义类型创建一个数组 这是我的代码 typedef struct int x int y float prob CellXY void main cv Mat
  • 自定义标题栏 - 系统标题栏短暂显示?

    我有一个自定义布局 我想用作我的 Android 应用程序的标题栏 找到的技术 链接在底部 有效 但系统标题栏在调用 onCreate 之前显示 显然 这看起来很不和谐 因为一会儿显示了系统标题栏 然后显示了我的自定义标题栏 styles
  • 使用 Tkinter 创建游戏板

    我正在尝试构建一个简单的游戏连接四 https en wikipedia org wiki Connect Four with Python 2 7 http www python org 我创建了一个板 它由一个简单的多维 Python
  • 当浏览器处于后台时,SSE 和 Websockets 是否可以工作?

    Both SSE 服务器发送事件 http www html5rocks com en tutorials eventsource basics and 网络套接字 http www html5rocks com en tutorials
  • 是否可以在同一页面上运行两个不同版本的ReactJS?

    大家好 我想知道是否可以在同一页面上运行两个版本的 ReactJS 类似于jQuery noConflict 经过一些研究 我发现了两件有趣的事情 两种反应不会成为朋友 虽然我很高兴大家似乎在 2015 年都开始关注 NPM 并且 NPM
  • 调整目录中图像的大小

    我有一个充满图像的目录 我想将其大小调整到原始大小的 60 左右 我该怎么做呢 可以是 Python 或 Perl Cheers Eef 如果您想以编程方式执行此操作 我认为是这种情况 请使用 PIL 来调整大小 例如 newIm im r
  • 使用 Python 填充 CSV 中的空位

    我正在解析 csv 文件来创建图表 我能够毫无问题地执行此操作 除非在单个情况下 每当 csv 文件中存在空槽时 例如 科尔1 科尔2 科尔3 科尔4 科尔545 34 23 98 1866 25 018 52 56 100 文件中的第 2
  • 如何在MinGW中使用Windows API?

    如何使用视窗应用程序接口 http en wikipedia org wiki Windows API in MinGW http en wikipedia org wiki MinGW 每当我这样做的时候 我只是 include
  • 日语和中文中 unicode 代码点的不同表示

    我正在尝试显示与 unicode 0x95E8 对应的字形 该代码点基本上是 CJK 块 中文 日语 韩语 我很难知道这个特定代码点的字形表示对于日语和中文是否可能不同 当我在 JTextArea 中显示 U 95E8 时 我能够在 lin