标题: [数值计算] 批处理实现日文与标点符号和十六进制码互转换? [打印本页]
作者: 867258173 时间: 2014-12-1 00:40 标题: 批处理实现日文与标点符号和十六进制码互转换?
有办法实现吗?小弟请教下
作者: amwfjhh 时间: 2014-12-1 17:52
不知这是否你想要的?- @if (0)==(0) echo off
- set /p str=输入你要转换的字符串:
- set /a nIndex=0
- :_GetHexCode
- call set tmpChr=%%str:~%nIndex%, 1%%
- if "%tmpChr%" == "" echo,&goto :_end
- for /f "tokens=*" %%i in ('cscript -nologo -e:jscript %~0 %tmpChr%') do set/p=0x%%i <nul
- set /a nIndex+=1
- goto :_GetHexCode
- :_end
- pause&goto :EOF
- @end
- WScript.echo(WScript.arguments(0).charCodeAt(0).toString(16));
复制代码
作者: 867258173 时间: 2014-12-2 18:39
回复 2# amwfjhh
只是简单的一句
「ふぅ……」
转十六进制码
0x输入错误
作者: amwfjhh 时间: 2014-12-2 20:39
回复 3# 867258173
你是什么系统环境?我这里显示正常。
作者: terse 时间: 2014-12-2 22:49
本帖最后由 terse 于 2014-12-2 22:51 编辑
- @if (0)==(0) echo off
- cscript -nologo -e:jscript %0
- echo,&pause&goto :EOF
- @end
- WScript.echo("请输入:")
- var str = WScript.StdIn.ReadLine();
- WScript.echo()
- var stringToHex = {
- on : function (str) {
- var a = [], i = 0;
- for (; i < str.length ;) a[i] = "0x"+ str.charCodeAt(i ++).toString(16);
- return a.join(" ");
- }
- };
- if (str != "") {
- WScript.echo("Hex: " + stringToHex.on(str))
- }
复制代码
作者: amwfjhh 时间: 2014-12-2 23:13
回复 5# terse
你这算混进羊群的狼吧,通篇功能都是JS来弄了,偏偏要披外BAT的外衣……
作者: 867258173 时间: 2014-12-3 20:27
回复 5# terse
成功了,但怎么显示的跟sjis-hex不同。
82 D3 82 A3 81 63 81 63
http://www.400gb.com/file/79685636
这是Java做的,有办法用批处理实现并导出txt原日文文本和SHIFT-JIS, UTF16, UTF16 Big Endian,UTF8编码十六进制码互换吗?
作者: terse 时间: 2014-12-4 01:13
回复 7# 867258173
还原这样 再转其他编码 那就改代码- @if (0)==(0) echo off
- cscript -nologo -e:jscript %0
- pause&goto :EOF
- @end
- WScript.echo('请输入:')
- var str = WScript.StdIn.ReadLine()
- var stringToHex = {
- on : function (str) {
- var a = [], i = 0;
- for (; i < str.length ;) a[i] = '0x'+("00" + str.charCodeAt(i ++).toString(16)).slice(-4);
- return "" + a.join(" ");
- },
-
- un : function (str) {
- return unescape(str.replace(/\s?0x/g, "%u"));
- }
-
- };
-
- var s = stringToHex.on(str)
- WScript.echo('Hex: ' + s + '\r\n'+ '还原: ' + stringToHex.un(s))
- WScript.echo()
复制代码
作者: CrLf 时间: 2014-12-4 01:36
本帖最后由 CrLf 于 2014-12-4 01:37 编辑
正在制作中的 JSConsole 2.0 可以这样:- var arr=bin2asc(iconv_toBin('ふぅ……','shift-jis')).toArray()
- arr.EACH(Number.to16).EACH(String.toUpperCase).join(' ')
- //得到的结果是: 82 D3 82 A3 81 63 81 63
复制代码
还在修改扩建优化中,过阵子把文档做好了再一起放出来
欢迎光临 批处理之家 (http://bbs.bathome.net/) |
Powered by Discuz! 7.2 |