我正在研究Delphi 2009中的一个应用程序,该应用程序大量使用RTF,使用TRichEdit和TLMDRichEdit进行编辑.在这些RTF控件中输入日文文本的用户一直在提交关于日文文本在重新加载内容时显示为乱码的间歇性报告,在Win XP和Vista上都安装了东部语言支持.
通常情况下,英语和日语混合在一起,大多数时候都没有问题,例如:
Inventory turns partnerships. ??????
Run Code Online (Sandbox Code Playgroud)
(如果日语文本被错误地打破,我很抱歉 - 我不会说或读这种语言).
然而,很多时候,只有文本的日文部分才是胡言乱语,例如:
ŒÉñ?“]-¦Œüã‚Ì·•ʉ?-vˆö‚ðŽû‰v‚ÉŒø‰?“I‚ÉŒ‹‚т‚¯‚é’mޝ‚ª‘÷Ý‚·‚é?(??????????
?????? ?????????????)
Run Code Online (Sandbox Code Playgroud)
从广泛的在线搜索看,问题是由于字体保存为RTF的一部分.日语版Windows上的字体不一定与美国英语版本相同.可以以编程方式替换RTF文件中的字体,从而产生几乎可接受的结果,即
-D‚‚?ƒIƒyƒŒ[ƒVƒ?“‚?ƒƒWƒXƒeƒBƒbƒN‚?ƒpƒtƒH[ƒ}ƒ“ƒX‚-˜‰v‚?Œ‹‚?‚?‚?‚?‚?‚±?‚??A‘‚?‚?-?‘?‚?‚ ‚?B‚?‚‚?Al“?‚?‚??‘P‚?ˆ?‚ƒƒXƒN‚?‚?‚‚?B
Run Code Online (Sandbox Code Playgroud)
但是,仍然存在相当多的"垃圾"字符,这些字符未被正确识别为日文字符.查看原始RTF,您将看到以下内容:
-D\'82\'82\u65405?\'83I\'83y\'83\'8c[\'83V\'83\u12539?\ldblquote\'82\u65414?
Run Code Online (Sandbox Code Playgroud)
显然,Unicode字符是正确呈现的,但是例如\ '82\'82字符对应该是别的吗?我的猜测是它实际上代表了某种双字节字符,这是出于一些神秘的原因编码为两个单独的字符而不是单个Unicode字符.
是否有一种通用的(相对)万无一失的方式来获取包含东方语言的RTF并再次可靠地显示它?
为了完整起见,我通过以下方式更新了RTF字体表:
更新:单独更新字体名称不会有所作为.区域设置似乎是一个大问题.我已经看到一些网站讨论将日语RTF显示转换为大多数读者可以处理的方法,但我还没有找到解决方案,例如:参见 此处和此处.
我做了一个快速的谷歌搜索,并没有看到任何超级伟大的自动创建和更新我的谷歌站点地图为ruby on rails应用程序.有什么建议?
我有一个包含大量项目的div.我通过单击按钮动态选择这些项目,在我的情况下溢出是自动的.我想要的是当选择一个不可见的项目来滚动div以便可见时.我怎样才能做到这一点?
我正在寻找JCaptcha的替代品,它似乎不再维护,并且开始时并不是很好.替换必须与JavaEE webapps很好地集成.
我可以看到,有三种选择:
有没有人使用过他们推荐的其他人?
我想做嵌套排序.我有一个课程对象,它有一组应用程序.应用程序具有时间和优先级等属性.现在我想先根据优先级对它们进行排序,并且在优先级内我想按时间对它们进行排序.
我想试试IronPython和Mono.具体做sysadmin任务.这通常意味着运行OS命令.在CPython中,我使用子进程模块执行此类任务.但是在IronPython(v2.0.1,Mono 2.4,Linux)中没有子进程模块.似乎甚至没有'os'模块.所以我不能使用os.system().在CPython中,通常使用'subprocess'或'os.system()'的IronPython执行任务的方式是什么?
我Application.Current.Shutdown()从一个绑定到xaml windows的类调用ObjectDataProvider,但是应用程序没有关闭.谁能帮我理解为什么?在我的主窗口关闭后,我的应用程序没有完全关闭,它不会从任务管理器的进程列表中消失.
想象一下,我有这个:
$cdata = AES_256($data, $pass);
Run Code Online (Sandbox Code Playgroud)
AES_256实现了AES算法.
如果我知道内容$cdata和内容$data并且还有AES_256()代码,我可以进行逆向工程并找到$pass吗?
我有一个带有RegularExpressionValidator的FileUpload,其中包含以下验证表达式:
^(([a-zA-Z]:)|(\\{2}\w+)\$?)(\\(\w[\w].*))+(.gif|.jpg|.JPG|.JPEG|.GIF|.jpeg|.png|.bmp|.3dm|.3dmf|.ai|.drw|.dxf|.esp|.mng|.png|.ps|.psp|.svg|.tiff)$
Run Code Online (Sandbox Code Playgroud)
这样我确保用户只上传图像.但由于某种原因,当我使用Firefox时它不起作用.为什么会这样,我该如何解决这个问题呢?
是否可以仅在控制台中显示具有特定单词的那些语句.
对于eq:
logger.debug ( "java: hello " );
logger.debug ( "groovy: hello " );
logger.debug ( "ruby: hello " );
Run Code Online (Sandbox Code Playgroud)
现在,通过执行某些配置或其他任何操作,应显示以groovy开头的所有语句.
java ×3
aes ×1
asp.net ×1
c# ×1
captcha ×1
cryptography ×1
delphi ×1
dom ×1
encryption ×1
file-upload ×1
fonts ×1
html ×1
ironpython ×1
java-ee ×1
javascript ×1
log4j ×1
mono ×1
recaptcha ×1
rtf ×1
seo ×1
shell ×1
shutdown ×1
unicode ×1
validation ×1
vb.net ×1
wpf ×1