为啥Centos上所有基于java的应用程序都中文乱码

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为啥Centos上所有基于java的应用程序都中文乱码相关的知识,希望对你有一定的参考价值。

参考技术A 不是Centos的问题,是编码,我印像最深的是要把html文件用记事本打开保存成utf-8编码,其它地方的编码也要查。 参考技术B 还是那句:编码不对。

找找系统的编码、程序的编码追问

我知道不是CentOS的问题,但是怎么解决呢

为啥所有 Cordova 插件都无法在 iOS 上加载?

【中文标题】为啥所有 Cordova 插件都无法在 iOS 上加载?【英文标题】:Why would all Cordova plugins fail to load on iOS?为什么所有 Cordova 插件都无法在 iOS 上加载? 【发布时间】:2019-04-04 01:09:23 【问题描述】:

有人要求我对之前由另一位开发人员构建的(非 Ionic)Cordova 应用程序进行一些更改。该项目附带了一个依赖管理文件,但是之前的开发人员将 Cordova 本身排除在依赖之外(可能是因为他的机器上全局安装了 Cordova),所以我不知道他使用的是什么版本的 Cordova。我添加了最新版本的 Cordova (9.0.0)。

如果我通过 Cordova 在浏览器中运行该应用程序,它会非常好用。但是,当我为 iOS 构建并在我的设备上运行时,很明显有些事情无法正常工作,例如启动屏幕和键盘设置。

如果我在 Xcode 中检查控制台输出,我会在应用程序启动后立即看到很多关于插件的错误消息。以下是几个例子:

2019-04-03 17:24:50.502504-0700 APP_NAME[693:225720] 错误:未找到插件 BuildInfo,或者不是 CDVP 插件。检查 config.xml 中的插件映射。

2019-04-03 17:24:50.502721-0700 APP_NAME[693:225720] -[CDVCommandQueue executePending] [第 142 行] FAILED pluginJSON = ["BuildInfo1245166954","BuildInfo","init",[]]

2019-04-03 17:24:52.005066-0700 APP_NAME[693:225720] 错误:找不到插件“状态栏”,或者不是 CDVP 插件。检查 config.xml 中的插件映射。

2019-04-03 17:24:52.005259-0700 APP_NAME[693:225720] -[CDVCommandQueue executePending] [第 142 行] FAILED pluginJSON = ["StatusBar1245166955","StatusBar","_ready",[]]

2019-04-03 17:24:52.005390-0700 APP_NAME[693:225720] 错误:找不到插件“状态栏”,或者不是 CDVP 插件。检查 config.xml 中的插件映射。

2019-04-03 17:24:52.005453-0700 APP_NAME[693:225720] -[CDVCommandQueue executePending] [第 142 行] FAILED pluginJSON = ["INVALID","StatusBar","hide",[]]

尽管有错误消息,config.xml 文件已经列出了插件:

<plugin name="cordova-plugin-whitelist" spec="1" />
<plugin name="cordova-plugin-keyboard" spec="~1.2.0" />
<plugin name="cordova-plugin-splashscreen" spec="~5.0.2" />
<plugin name="cordova-plugin-statusbar" spec="~2.4.2" />
<plugin name="cc.fovea.cordova.purchase" spec="~7.2.5">
    <variable name="BILLING_KEY" value="[removed]" />
</plugin>
<plugin name="cordova-plugin-buildinfo" spec="^2.0.2" />

platforms/ios/ios.json,有这个:

"installed_plugins": 
    "cc.fovea.cordova.purchase": 
      "PACKAGE_NAME": "[removed]"
    ,
    "cordova-plugin-buildinfo": 
      "PACKAGE_NAME": "[removed]"
    ,
    "cordova-plugin-keyboard": 
      "PACKAGE_NAME": "[removed]"
    ,
    "cordova-plugin-splashscreen": 
      "PACKAGE_NAME": "[removed]"
    ,
    "cordova-plugin-statusbar": 
      "PACKAGE_NAME": "[removed]"
    ,
    "cordova-plugin-whitelist": 
      "PACKAGE_NAME": "[removed]"
    

platforms/ios/www/cordova_plugins.js,有这个:

cordova.define('cordova/plugin_list', function(require, exports, module) 
module.exports = [
  
    "id": "cc.fovea.cordova.purchase.InAppPurchase",
    "file": "plugins/cc.fovea.cordova.purchase/www/store-ios.js",
    "pluginId": "cc.fovea.cordova.purchase",
    "clobbers": [
      "store"
    ]
  ,
  
    "id": "cordova-plugin-buildinfo.BuildInfo",
    "file": "plugins/cordova-plugin-buildinfo/www/buildinfo.js",
    "pluginId": "cordova-plugin-buildinfo",
    "clobbers": [
      "BuildInfo"
    ]
  ,
  
    "id": "cordova-plugin-keyboard.keyboard",
    "file": "plugins/cordova-plugin-keyboard/www/keyboard.js",
    "pluginId": "cordova-plugin-keyboard",
    "clobbers": [
      "window.Keyboard",
      "cordova.plugins.Keyboard"
    ]
  ,
  
    "id": "cordova-plugin-splashscreen.SplashScreen",
    "file": "plugins/cordova-plugin-splashscreen/www/splashscreen.js",
    "pluginId": "cordova-plugin-splashscreen",
    "clobbers": [
      "navigator.splashscreen"
    ]
  ,
  
    "id": "cordova-plugin-statusbar.statusbar",
    "file": "plugins/cordova-plugin-statusbar/www/statusbar.js",
    "pluginId": "cordova-plugin-statusbar",
    "clobbers": [
      "window.StatusBar"
    ]
  
];
module.exports.metadata = 
// TOP OF METADATA

  "cc.fovea.cordova.purchase": "7.2.8",
  "cordova-plugin-buildinfo": "2.0.2",
  "cordova-plugin-keyboard": "1.2.0",
  "cordova-plugin-splashscreen": "5.0.2",
  "cordova-plugin-statusbar": "2.4.2",
  "cordova-plugin-whitelist": "1.3.3"
;
// BOTTOM OF METADATA
);

platforms/ios/www/plugins 中,每个插件都有一个文件夹。这些文件夹中的每一个都包含一个 www 文件夹,其中包含一个 JS 文件:

platforms/ios/www/plugins
    +---cc.fovea.cordova.purchase
    ¦   +---www
    ¦           store-ios.js
    ¦
    +---cordova-plugin-buildinfo
    ¦   +---www
    ¦           buildinfo.js
    ¦
    +---cordova-plugin-keyboard
    ¦   +---www
    ¦           keyboard.js
    ¦
    +---cordova-plugin-splashscreen
    ¦   +---www
    ¦           splashscreen.js
    ¦
    +---cordova-plugin-statusbar
        +---www
                statusbar.js

在 Xcode 中,所有插件的 .m 文件都列在 Build Phases > Compile Sources 中

我反复卸载重装ios平台并重建项目,无济于事。

我知道插件在以前的开发人员制作的版本中工作,但我不明白为什么在我制作时插件没有加载;一切似乎都配置正确。

【问题讨论】:

值得尝试自己删除插件然后重新添加。 【参考方案1】:

我通过降级到 Cordova 8.1.2 解决了这个问题

【讨论】:

以上是关于为啥Centos上所有基于java的应用程序都中文乱码的主要内容,如果未能解决你的问题,请参考以下文章

为啥 Node.js 是单线程的? [关闭]

CUDA - 为啥基于扭曲的并行减少速度较慢?

GWT 内容未在 centOS 7.5 上显示

为啥 Java 的基于值的类不应该被序列化?

为啥所有 Cordova 插件都无法在 iOS 上加载?

为啥我的所有位图都被上采样了 200%?