我有一个在控制台上运行的程序,其Umlauts和其他特殊字符在Mac上输出为?。这是一个简单的测试程序:
public static void main( String[] args ) {
System.out.println("höhößüä");
System.console().printf( "höhößüä" );
}
在默认的Mac控制台(使用默认的UTF-8编码)上,将打印:
h?h????
h?h????
但是在将Mac终端的编码手动设置为“ Mac OS Roman”后,它可以正确打印
höhößüä
höhößüä
请注意,在Windows系统上,使用System.console()可以工作:
h÷h÷▀³õ
höhößüä
那么,如何使我的程序… rolleyes …“无处不在”?
艾帕加:在这里看看。您可以在打印流中设置输出编码-
只需确定或绝对确定要设置哪个即可。
import java.io.PrintStream;
import java.io.UnsupportedEncodingException;
public class Test {
public static void main (String[] argv) throws UnsupportedEncodingException {
String unicodeMessage =
"\u7686\u3055\u3093\u3001\u3053\u3093\u306b\u3061\u306f";
PrintStream out = new PrintStream(System.out, true, "UTF-8");
out.println(unicodeMessage);
}
}
要确定控制台编码,您可以使用系统命令“ locale”并解析输出,该输出在德语UTF-8系统上如下所示:
LANG="de_DE.UTF-8"
LC_COLLATE="de_DE.UTF-8"
LC_CTYPE="de_DE.UTF-8"
LC_MESSAGES="de_DE.UTF-8"
LC_MONETARY="de_DE.UTF-8"
LC_NUMERIC="de_DE.UTF-8"
LC_TIME="de_DE.UTF-8"
LC_ALL=
是否有一种方法可以在每次文件更改时以某种方式触发一个事件?我是指类似的东西(在伪代码中) 我知道我可以周期性地做,但我能在没有计时器的情况下做吗?我希望在用户更新txt文件时(不是通过代码,而是通过打开文件并在里面写入)能够做出一些动作,但我不知道他什么时候会这么做。
我有一个带有子组件的组件。 在时间轴组件中,我有这些属性: 如何检查何时从时间轴组件对属性进行更改?每当编辑值发生更改时,我都需要发出该值。 我应该为编辑属性使用一个setter,然后从那里发出吗? 或者有其他方法吗?
问题内容: 在Angular 1中,通过检查$ scope层次结构来进行更改检测。我们将在模板,控制器或组件中隐式或显式创建观察者。 在Angular 2中,我们不再具有$ scope,但是我们确实覆盖了setInterval,setTimeout等。我可以看到Angular如何使用它来触发$ digest,但是Angular如何确定发生了什么变化,特别是考虑到Object.observe从未进入
我正在用ExoPlayer 2在Android上开发视频播放器 我正在寻找在SubtitleView(屏幕上部)中检测字幕更改的方法,以在TextView(屏幕下部)中自动滚动字幕<似乎没有听众这么做<我试了几个听众的字幕,但没有效果<你有什么想法吗
问题内容: 如何轻松检测变量何时更改值?我希望每当指定变量更改值时,程序的执行就在调试器上中断。现在,我正在使用Eclipse的调试器。 问题答案: 对于类或实例变量 右键单击大纲视图中的变量 选择“切换监视点” 然后,在breapkoints视图中,可以右键单击结果条目 选择“断点属性” 取消选择“现场访问”。
我得到了一个组件,它只是一个/-计数器。我可以从这个组件中获取我需要的值的引用,如下所示: 显示来自组件的正确值,但我不知道如何在父组件中观察此值的变化。对我来说,修改此子组件的代码非常困难,在这种情况下,我可能会使用来通知父组件更改。 我如何在我的父组件中为这个的注册一个等待器?