相关疑难解决方法(0)

Java 7默认语言环境

我刚刚安装了jre7,我很惊讶地看到我的默认语言环境现在是en_US.有了jre6,它就是de_CH.

与jre7有什么不同?默认语言环境不再是操作系统之一吗?(顺便说一句,我使用的是Windows7)

谢谢你的回答.

编辑:我已经看到Category.FORMAT的Locale 是"旧的"(de_CH).Category.DISPLAY的Locale 采用操作系统语言的语言(在Windows中,这是在控制面板>区域和语言>键盘和语言>显示语言中完成的)和来自...的contry?

似乎不同的是属性" user.country ".使用Java6,我得到"CH",而使用Java7,我得到"US".

java windows locale windows-7 java-7

24
推荐指数
2
解决办法
2万
查看次数

从OS获取数字格式

这个问题似乎非常简单,但我很尴尬地说我无法弄清楚它是如何工作的.

我希望我的Java SE应用程序从操作系统中配置的任何内容中获取其数字格式.就像该OS上的任何其他应用程序一样.

我的目标主要是Windows.在Windows中考虑此示例:

在此输入图像描述

我用这个小例子来检查结果:

public class MyMain {
    public static void main(String[] args) {
        DecimalFormat decFormat = new DecimalFormat();
        DecimalFormatSymbols decSymbols = decFormat.getDecimalFormatSymbols();           
        System.out.println("Decimal separator is : " + decSymbols.getDecimalSeparator());
        System.out.println("Thousands separator is : " + decSymbols.getGroupingSeparator());
    }
}
Run Code Online (Sandbox Code Playgroud)

通过上面的截图示例,我的小Java示例打印:

Decimal separator is : ,
Thousands separator is : .
Run Code Online (Sandbox Code Playgroud)

我原以为它会说小数点分隔符是一个点而千位分隔符是一个逗号 - 因为这就是我告诉Windows的内容,而这正是所有其他Windows应用程序所接受的.

我的印象是,在Windows中,这些设置会对新进程生效.我试过重启我的IDE.没有帮助.

我究竟做错了什么?

java

22
推荐指数
1
解决办法
3161
查看次数

Oracle SQL Developer客户端编码

我阅读了许多相关的stackoverflow主题,我花了一整天的时间来讨论以下问题,但我没有找到任何有用的东西,但问题似乎没有得到满足.

我有一个Oracle数据库.让我们看看以下PL/SQL脚本:

CREATE TABLE Dummy(
   id number(19,0),
   tclob clob,
   tnclob nclob,
   PRIMARY KEY (id));

INSERT INTO dummy (id, tclob, tnclob) VALUES (1, 'ñ$ߤ*>;''<’', 'ñ$ߤ*>;''<’');
SELECT tclob, tnclob FROM dummy;
Run Code Online (Sandbox Code Playgroud)

我的问题是''​​'和'''字符存储为问号.我还试图通过JAVA加载以前插入的值,但我得到问号而不是特殊字符.

我创建了一个小型JAVA方法,它使用OraclePreparedStatement来保存测试数据,我使用setNString()方法将nclob数据附加到查询中.在这种情况下,所有字符在JAVA和SqlDeveloper中都可以正常显示.

因此,一种可能的解决方案是使用JAVA将我的数据保存到数据库中.我有几千行SQL脚本插入数据,我不想在java中再次编写整个东西.

所以问题是:为什么sqldeveloper打破了特殊字符?

我的设置:

SELECT DECODE(parameter, 'NLS_CHARACTERSET', 'CHARACTER SET',
'NLS_LANGUAGE', 'LANGUAGE',
'NLS_TERRITORY', 'TERRITORY') name,
value from v$nls_parameters
WHERE parameter IN ( 'NLS_CHARACTERSET', 'NLS_LANGUAGE', 'NLS_TERRITORY')
Run Code Online (Sandbox Code Playgroud)

结果:

NAME          VALUE
------------- -------------
LANGUAGE      HUNGARIAN
TERRITORY     HUNGARY
CHARACTER SET EE8ISO8859P2
Run Code Online (Sandbox Code Playgroud)

我将SqlDeveloper/Preferences/Environment/Encoding更改为UTF-8.我还将HKEY_LOCAL_MACHINE\SOFTWARE\ORACLE\KEY_OraDb11g_home1值更改为HUNGARIAN_HUNGARY.UTF8

更新:我尝试使用以下语法插入数据:

INSERT INTO dummy (id, tclob, tnclob) VALUES (1, N'ñ$ߤ*>;''<’', N'ñ$ߤ*>;''<’');
INSERT …
Run Code Online (Sandbox Code Playgroud)

oracle plsql character-encoding oracle-sqldeveloper

3
推荐指数
1
解决办法
3万
查看次数