如何安全地提供在多言语环境下正常运行的游戏?

本贴最后更新于 2507 天前,其中的信息可能已经物是人非

我在一个别的帖子里分享我的自制游戏"BreakScope"时,遇到了一些麻烦,希望请教。
游戏帖子链接:https://hacpai.com/article/1526891057890

我的游戏含有自定义改变功能,也就是我准备了一个 txt 文档让玩家更容易地进行游戏内容的改造(如使用图像,武器属性,子弹轨道)。

我为了在黑客派上的发布,正在进行这个游戏的中文翻译。

但我遇到了一个很麻烦的现象:
在这个 txt 文档里如果存在日文,用中国的电脑启动时它们会变成乱码,但运行没有问题。
反过来我写了中文,会妨碍中文出现行之后部分的读取,导致读取失败。

我想知道怎么解决这个问题,希望写进去的东西能在两环境内保持原来的文字。

也许改一下 txt 文档的 Encoding 会有用?因为 Java 文档里的日文用 UTF-8 写了之后,在中国电脑用 UTF-8 规格打开它并没有乱码,但本题提到的 txt 文档是 ANSI 写的,结果什么规格打开都出现乱码。

我还不知道 Encoding 的这些特点,希望可以指导一下。

还有一个想问的是,图像,音频等文件的名字好像也该尽量避免英文以外的字?在我的设备上(Windows),即使文件名乱码的图像也可以正常按原来的日文名称指定并读取,但在其他人的设备上(中国)(Mac OS),却产生了无法指定这些文件的 BUG。

  • Q&A

    提问之前请先看《提问的智慧》,好的问题比好的答案更有价值。

    9441 引用 • 42996 回帖 • 108 关注
  • Java

    Java 是一种可以撰写跨平台应用软件的面向对象的程序设计语言,是由 Sun Microsystems 公司于 1995 年 5 月推出的。Java 技术具有卓越的通用性、高效性、平台移植性和安全性。

    3195 引用 • 8215 回帖
  • 国际化

    i18n(其来源是英文单词 internationalization 的首末字符 i 和 n,18 为中间的字符数)是“国际化”的简称。对程序来说,国际化是指在不修改代码的情况下,能根据不同语言及地区显示相应的界面。

    8 引用 • 26 回帖

相关帖子

欢迎来到这里!

我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。

注册 关于
请输入回帖内容 ...
  • 88250 1

    要做多语言配置(简称国际化 i18n)可以用 properties 文件,使用 java.util.ResourceBundle 加载,程序内的所有文案都从语言配置文件中读取。Java 标准中规定了 properties 文件使用 unicode 编码,而且 ResourceBundle 工具类也处理好编码问题了,大部分 IDE 在编辑 props 文件时也自动将编码转为 unicode 了,我们可以不必关心。

    1 回复
  • 其他回帖
  • bluelaserpointer
    作者

    我学了一下 UTF-8 和 Unicode 的区别,然后把这些 txt 文档的编码设定成 UTF-8,现在可以正常地保存中文和日文两边的文字了,读取也不会失败。

    (之前我还不知道 UTF-8 实际上就是 Unicode 的一种)

    现在还不做完全的多语言配置,我只是把这些 txt 文档改成了 properties 文档,然后从图像以及音频的文件名中清除了日文。

    我预定在做下一个作品时,做好完整的多语言配置,同时学一下 ResourceBundle 的用法。

bluelaserpointer
日本生的游戏编程爱好者,使用Java语言。做这个账号的时候是高中生。 上海

推荐标签 标签

  • OpenCV
    15 引用 • 36 回帖 • 1 关注
  • Angular

    AngularAngularJS 的新版本。

    26 引用 • 66 回帖 • 543 关注
  • DevOps

    DevOps(Development 和 Operations 的组合词)是一组过程、方法与系统的统称,用于促进开发(应用程序/软件工程)、技术运营和质量保障(QA)部门之间的沟通、协作与整合。

    57 引用 • 25 回帖 • 9 关注
  • 数据库

    据说 99% 的性能瓶颈都在数据库。

    345 引用 • 742 回帖
  • Postman

    Postman 是一款简单好用的 HTTP API 调试工具。

    4 引用 • 3 回帖
  • FlowUs

    FlowUs.息流 个人及团队的新一代生产力工具。

    让复杂的信息管理更轻松、自由、充满创意。

    1 引用
  • Thymeleaf

    Thymeleaf 是一款用于渲染 XML/XHTML/HTML5 内容的模板引擎。类似 Velocity、 FreeMarker 等,它也可以轻易的与 Spring 等 Web 框架进行集成作为 Web 应用的模板引擎。与其它模板引擎相比,Thymeleaf 最大的特点是能够直接在浏览器中打开并正确显示模板页面,而不需要启动整个 Web 应用。

    11 引用 • 19 回帖 • 385 关注
  • ZeroNet

    ZeroNet 是一个基于比特币加密技术和 BT 网络技术的去中心化的、开放开源的网络和交流系统。

    1 引用 • 21 回帖 • 639 关注
  • Typecho

    Typecho 是一款博客程序,它在 GPLv2 许可证下发行,基于 PHP 构建,可以运行在各种平台上,支持多种数据库(MySQL、PostgreSQL、SQLite)。

    12 引用 • 67 回帖 • 445 关注
  • Swagger

    Swagger 是一款非常流行的 API 开发工具,它遵循 OpenAPI Specification(这是一种通用的、和编程语言无关的 API 描述规范)。Swagger 贯穿整个 API 生命周期,如 API 的设计、编写文档、测试和部署。

    26 引用 • 35 回帖 • 3 关注
  • Hadoop

    Hadoop 是由 Apache 基金会所开发的一个分布式系统基础架构。用户可以在不了解分布式底层细节的情况下,开发分布式程序。充分利用集群的威力进行高速运算和存储。

    88 引用 • 122 回帖 • 621 关注
  • 反馈

    Communication channel for makers and users.

    126 引用 • 929 回帖 • 270 关注
  • SMTP

    SMTP(Simple Mail Transfer Protocol)即简单邮件传输协议,它是一组用于由源地址到目的地址传送邮件的规则,由它来控制信件的中转方式。SMTP 协议属于 TCP/IP 协议簇,它帮助每台计算机在发送或中转信件时找到下一个目的地。

    4 引用 • 18 回帖 • 639 关注
  • 持续集成

    持续集成(Continuous Integration)是一种软件开发实践,即团队开发成员经常集成他们的工作,通过每个成员每天至少集成一次,也就意味着每天可能会发生多次集成。每次集成都通过自动化的构建(包括编译,发布,自动化测试)来验证,从而尽早地发现集成错误。

    15 引用 • 7 回帖 • 1 关注
  • CSDN

    CSDN (Chinese Software Developer Network) 创立于 1999 年,是中国的 IT 社区和服务平台,为中国的软件开发者和 IT 从业者提供知识传播、职业发展、软件开发等全生命周期服务,满足他们在职业发展中学习及共享知识和信息、建立职业发展社交圈、通过软件开发实现技术商业化等刚性需求。

    14 引用 • 155 回帖
  • 又拍云

    又拍云是国内领先的 CDN 服务提供商,国家工信部认证通过的“可信云”,乌云众测平台认证的“安全云”,为移动时代的创业者提供新一代的 CDN 加速服务。

    20 引用 • 37 回帖 • 570 关注
  • Mobi.css

    Mobi.css is a lightweight, flexible CSS framework that focus on mobile.

    1 引用 • 6 回帖 • 755 关注
  • C++

    C++ 是在 C 语言的基础上开发的一种通用编程语言,应用广泛。C++ 支持多种编程范式,面向对象编程、泛型编程和过程化编程。

    107 引用 • 153 回帖
  • Anytype
    3 引用 • 31 回帖 • 13 关注
  • Sublime

    Sublime Text 是一款可以用来写代码、写文章的文本编辑器。支持代码高亮、自动完成,还支持通过插件进行扩展。

    10 引用 • 5 回帖 • 1 关注
  • RabbitMQ

    RabbitMQ 是一个开源的 AMQP 实现,服务器端用 Erlang 语言编写,支持多种语言客户端,如:Python、Ruby、.NET、Java、C、PHP、ActionScript 等。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。

    49 引用 • 60 回帖 • 347 关注
  • Pipe

    Pipe 是一款小而美的开源博客平台。Pipe 有着非常活跃的社区,可将文章作为帖子推送到社区,来自社区的回帖将作为博客评论进行联动(具体细节请浏览 B3log 构思 - 分布式社区网络)。

    这是一种全新的网络社区体验,让热爱记录和分享的你不再感到孤单!

    132 引用 • 1115 回帖 • 119 关注
  • RESTful

    一种软件架构设计风格而不是标准,提供了一组设计原则和约束条件,主要用于客户端和服务器交互类的软件。基于这个风格设计的软件可以更简洁,更有层次,更易于实现缓存等机制。

    30 引用 • 114 回帖 • 7 关注
  • LeetCode

    LeetCode(力扣)是一个全球极客挚爱的高质量技术成长平台,想要学习和提升专业能力从这里开始,充足技术干货等你来啃,轻松拿下 Dream Offer!

    209 引用 • 72 回帖 • 1 关注
  • 学习

    “梦想从学习开始,事业从实践起步” —— 习近平

    172 引用 • 516 回帖
  • ActiveMQ

    ActiveMQ 是 Apache 旗下的一款开源消息总线系统,它完整实现了 JMS 规范,是一个企业级的消息中间件。

    19 引用 • 13 回帖 • 678 关注
  • 博客

    记录并分享人生的经历。

    273 引用 • 2388 回帖 • 1 关注