Mysql 当jdk通过bash脚本运行时,数据编码是错误的

Mysql 当jdk通过bash脚本运行时,数据编码是错误的,mysql,bash,java-8,Mysql,Bash,Java 8,嗨,我有一个java服务,它从api获取数据,并将数据插入mysql db表。问题是,当我运行脚本时,一些字符以错误的格式存储。(例如:-mgÃen) 但是如果我使用IDE运行相同的java服务,就不会发生这种情况。我想不出为什么会这样 有人能提出发生这种情况的原因吗? 谢谢 更新:: 我的脚本如下=> java-jar SERVICE.jar$3$then不要使用系统的默认编码。在字节和字符之间转换时,请始终指定编码。您能告诉我如何进行吗?我必须在脚本中指定它吗@HolgerIt意味着您的ID

嗨,我有一个java服务,它从api获取数据,并将数据插入mysql db表。问题是,当我运行脚本时,一些字符以错误的格式存储。(例如:-mgÃen)

但是如果我使用IDE运行相同的java服务,就不会发生这种情况。我想不出为什么会这样

有人能提出发生这种情况的原因吗? 谢谢

更新:: 我的脚本如下=>


java-jar SERVICE.jar$3$then

不要使用系统的默认编码。在字节和字符之间转换时,请始终指定编码。您能告诉我如何进行吗?我必须在脚本中指定它吗@HolgerIt意味着您的IDE使用不同的默认编码设置运行应用程序,例如Netbeans默认总是使用
UTF-8
而不是实际的系统编码运行应用程序。您可以在命令行上使用
-Dfile.encoding=…
设置编码,但这需要了解哪种编码适合您的数据库,并且在使用时,您应该首先修复应用程序以始终使用正确的编码,而不是要求周围的环境将编码作为默认值。@Holger谢谢!我想我现在明白这个问题了。我正在使用BufferedReader读取数据,BufferedReader in=new BufferedReader(new InputStreamReader(url.openStream(),“UTF-8”);添加“UTF-8”成功了!JRE的默认编码,通常初始化为特定于操作的编码,例如在西方windows版本上的
windows-1252
,但可以被覆盖,例如使用命令行上的
-Dfile.encoding=…
选项。不要使用系统的默认编码。在字节和字符之间转换时,请始终指定编码。您能告诉我如何进行吗?我必须在脚本中指定它吗@HolgerIt意味着您的IDE使用不同的默认编码设置运行应用程序,例如Netbeans默认总是使用
UTF-8
而不是实际的系统编码运行应用程序。您可以在命令行上使用
-Dfile.encoding=…
设置编码,但这需要了解哪种编码适合您的数据库,并且在使用时,您应该首先修复应用程序以始终使用正确的编码,而不是要求周围的环境将编码作为默认值。@Holger谢谢!我想我现在明白这个问题了。我正在使用BufferedReader读取数据,BufferedReader in=new BufferedReader(new InputStreamReader(url.openStream(),“UTF-8”);添加“UTF-8”成功了!JRE的默认编码,通常初始化为特定于操作的编码,例如在西方windows版本上的
windows-1252
,但可以被覆盖,例如使用命令行上的
-Dfile.encoding=…
选项。