精华内容
下载资源
问答
  • 1,将需要转换的中文名字拷贝到文本文件(.txt),每个一行,例如从excel文件中拷贝一列,作为源文件; 2,姓名之间不能有空格,但是姓名前后可以有; 3,目标文件可以指定,如不指定,会自动生成一个 " 源文件名_en...
  • 维吾尔人名字翻译工具
  • 1. 使用pinyin4j 1.1 引入相关maven依赖 <dependency> <groupId>com.belerweb</groupId> <artifactId>pinyin4j</artifactId> <version>2.5.0<...1.2 汉字

    1. 使用pinyin4j

    1.1 引入相关maven依赖

            <dependency>
                <groupId>com.belerweb</groupId>
                <artifactId>pinyin4j</artifactId>
                <version>2.5.0</version>
            </dependency>
    

    1.2 汉字转换拼音工具类相关代码

    import net.sourceforge.pinyin4j.PinyinHelper;
    import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType;
    import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
    import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;
    import net.sourceforge.pinyin4j.format.HanyuPinyinVCharType;
    import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;
    
    /**
     * @description: 汉字拼音转换
     * @author: zyb
     * @date: 2020/01/13 15:40
     */
    public class PinyinUtils {
    
        /**
         * 获得汉字拼音首字母
         * @param chines 中文
         * @return 汉字拼音首字母
         */
    	public static String getAlpha(String chines) {
            String pinyinName = "";
            char[] nameChar = chines.toCharArray();
            HanyuPinyinOutputFormat defaultFormat = new HanyuPinyinOutputFormat();
            defaultFormat.setCaseType(HanyuPinyinCaseType.UPPERCASE);
            defaultFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
            for (int i = 0; i < nameChar.length; i++) {
                if (nameChar[i] > 128) {
                    try {
                        pinyinName += PinyinHelper.toHanyuPinyinStringArray(
                                nameChar[i], defaultFormat)[0].charAt(0);
                    } catch (BadHanyuPinyinOutputFormatCombination e) {
                        e.printStackTrace();
                    }
                } else {
                    pinyinName += nameChar[i];
                }
            }
            return pinyinName;
        }
    
        /**
         * 将字符串中的中文转化为拼音,英文字符不变
         * @param inputString 字符串
         * @return 全英文字符串
         */
    	public static String getPingYin(String inputString) {
            HanyuPinyinOutputFormat format = new HanyuPinyinOutputFormat();
            format.setCaseType(HanyuPinyinCaseType.LOWERCASE);
            format.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
            format.setVCharType(HanyuPinyinVCharType.WITH_V);
            String output = "";
            if (inputString != null && inputString.length() > 0
                    && !"null".equals(inputString)) {
                char[] input = inputString.trim().toCharArray();
                try {
                    for (int i = 0; i < input.length; i++) {
                        if (Character.toString(input[i]).matches(
                                "[\\u4E00-\\u9FA5]+")) {
                            String[] temp = PinyinHelper.toHanyuPinyinStringArray(
                                    input[i], format);
                            output += temp[0];
                        } else
                            output += Character.toString(input[i]);
                    }
                } catch (BadHanyuPinyinOutputFormatCombination e) {
                    e.printStackTrace();
                }
            } else {
                return "*";
            }
            return output;
        }
    
    	
    	public static void main(String[] args) {
    		String englishStr = PinyinUtils.getPingYin("测试123ceshi");
            String s = PinyinUtils.getAlpha("测试123ceshi");
            System.out.println(englishStr);
            System.out.println(s);
    	}
    }
    
    
    展开全文
  • 支持多种英文格式(如:名字+姓氏、姓氏+名字等),内置3500中文字库,可应用于人力资源、办公文秘、旅游公司涉外旅游登记等中英文名字批量处理,支持成千上万个名字批量转换,鼠标一点,瞬间完成。     方法...
  • EXCEL+维吾尔人名字翻译工具
  • 下面是我封装的一个用来把数据格式转换为Echarts柱状图所需要数据的方法。 /** * 封装了一个用于生成前端柱状图对应数据结构所需数据的方法 * * @author sueyun * */ public class CreateBarDataUtil {...

    ECharts柱状图

    当我们不想直接把数据直接展示到页面时,我们可以把数据绘制一个简单的图表展示出来,这样既美观又形象。下面是我封装的一个用来把数据格式转换为Echarts柱状图所需要数据的方法。

    /**
     * 封装了一个用于生成前端柱状图对应数据结构所需数据的方法
     * 
     * @author sueyun
     *
     */
    public class CreateBarDataUtil {
    
    	/**
    	 * 用来生成前端柱状图对应数据结构所需要的原数据,数据中保存的键的名字和原来一样
    	 * 
    	 * @param barData 需要一个泛型为Map的list集合数据作为柱状图所需要的数据
    	 * @return 返回一个Map<String, Object>集合,集合里面的键为入参集合中的键
    	 * @throws Exception 空值判断
    	 */
    	public static Map<String, Object> getBarDatas(List<Map<String, Object>> barData) throws Exception {
    		// 判断数据是否为空
    		if (barData == null || barData.size() == 0) {
    
    			throw new Exception(barData + "为空....");
    		} else {
    
    			Map<String, Object> barJson = new HashMap<String, Object>();
    
    			// 获得集合中Map的所有键的名字
    			Set<String> keySet = barData.get(0).keySet();
    
    			// 循环遍历set集合创建对应键个数的list集合,并填充数据最后在把list放入另一个map集合中
    			for (String key : keySet) {
    
    				List<String> data = new ArrayList<String>();
    
    				for (Map<String, Object> map : barData) {
    
    					data.add(String.valueOf(map.get(key)));
    				}
    
    				barJson.put(key, data);
    			}
    
    			return barJson;
    		}
    	}
    }
    
    

    下面利用上面的工具类为大家演示如何使用。该例子是基于ssm框架编写的,xml配置略过。

    效果图

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

    一 dao层代码

    score.xml代码

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
    <mapper namespace="cn.sueyun.mapper.ScoreMapper" >
    
    <select id="selectOneCourse" resultType="map">
    SELECT `name`,chinese FROM score
    </select>
    
    <select id="selectTwoCourse" resultType="map">
    SELECT `name`,chinese,math FROM score
    </select>
    
    <select id="selectThreeCourse" resultType="map">
    SELECT `name`,chinese,math,english FROM score
    </select>
    
    </mapper>
    

    mapper接口中代码(ScoreMapper.java)

    import java.util.List;
    import java.util.Map;
    
    public interface ScoreMapper {
    
    	List<Map<String, Object>> selectOneCourse();
    
    	List<Map<String, Object>> selectTwoCourse();
    
    	List<Map<String, Object>> selectThreeCourse();
    }
    

    二 service层代码

    service接口代码(ScoreService.java)

    import java.util.List;
    import java.util.Map;
    
    
    public interface ScoreService {
    
    	List<Map<String, Object>> showOneCourse();
    
    	List<Map<String, Object>> showTwoCourse();
    
    	List<Map<String, Object>> showThreeCourse();
    }
    

    service实现类代码(ScoreServiceImpl.java)

    import java.util.List;
    import java.util.Map;
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Service;
    
    import cn.sueyun.mapper.ScoreMapper;
    import cn.sueyun.service.ScoreService;
    
    @Service
    public class ScoreServiceImpl implements ScoreService {
    	@Autowired
    	private ScoreMapper mapper;
    
    	@Override
    	public List<Map<String, Object>> showOneCourse() {
    
    		return mapper.selectOneCourse();
    	}
    
    	@Override
    	public List<Map<String, Object>> showTwoCourse() {
    
    		return mapper.selectTwoCourse();
    	}
    
    	@Override
    	public List<Map<String, Object>> showThreeCourse() {
    
    		return mapper.selectThreeCourse();
    	}
    
    }
    

    三 controller层代码

    import java.util.Map;
    
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Controller;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.ResponseBody;
    
    import cn.sueyun.service.ScoreService;
    import cn.sueyun.util.CreateBarDataUtil;
    
    @Controller
    public class ScoreController {
    	@Autowired
    	private ScoreService service;
    
    	@RequestMapping("/showOne")
    	public @ResponseBody Map<String, Object> showOne() throws Exception {
    
    		return CreateBarDataUtil.getBarDatas(service.showOneCourse());
    	}
    
    	@RequestMapping("/showTwo")
    	public @ResponseBody Map<String, Object> showTwo() throws Exception {
    
    		return CreateBarDataUtil.getBarDatas(service.showTwoCourse());
    	}
    
    	@RequestMapping("/showThree")
    	public @ResponseBody Map<String, Object> showThree() throws Exception {
    
    		return CreateBarDataUtil.getBarDatas(service.showThreeCourse());
    	}
    }
    
    

    四 view层代码

    <!DOCTYPE html>
    <html>
    <head>
    <meta charset="UTF-8">
    <title>Insert title here</title>
    <script type="text/javascript" src="js/jquery-3.2.0.min.js"></script>
    <script type="text/javascript" src="js/echarts.min.js"></script>
    <script>
    	$(function() {
    		var myChart = echarts.init(document.getElementById('bar1'));
    		$.ajax({
    			type : "get",
    			url : "showOne",
    			async : true,
    			success : function(data) {
    				myChart.setOption({
    					title : {
    						text : '学生考试成绩图'
    					},
    					tooltip : {},
    					legend : {
    						data : [ '语文成绩' ]
    					},
    					xAxis : {
    						data : data.name
    					},
    					yAxis : {},
    					series : [ {
    						name : '语文成绩',
    						type : 'bar',
    						data : data.chinese
    					} ]
    				});
    			}
    		})
    	})
    
    	$(function() {
    		var myChart = echarts.init(document.getElementById('bar2'));
    		$.ajax({
    			type : "get",
    			url : "showTwo",
    			async : true,
    			success : function(data) {
    				option = {
    					title : {
    						text : '学生考试成绩图',
    						subtext : '例子'
    					},
    					tooltip : {
    						trigger : 'axis'
    					},
    					legend : {
    						data : [ '语文成绩', '数学成绩' ]
    					},
    					toolbox : {
    						show : true,
    						feature : {
    							dataView : {
    								show : true,
    								readOnly : false
    							},
    							magicType : {
    								show : true,
    								type : [ 'line', 'bar' ]
    							},
    							restore : {
    								show : true
    							},
    							saveAsImage : {
    								show : true
    							}
    						}
    					},
    					calculable : true,
    					xAxis : [ {
    						type : 'category',
    						data : data.name
    					} ],
    					yAxis : [ {
    						type : 'value'
    					} ],
    					series : [ {
    						name : '语文',
    						type : 'bar',
    						data : data.chinese,
    
    					}, {
    						name : '数学',
    						type : 'bar',
    						data : data.math
    
    					} ]
    				};
    				myChart.setOption(option);
    			}
    		})
    	})
    
    	$(function() {
    		var myChart = echarts.init(document.getElementById('bar3'));
    		$.ajax({
    			type : "get",
    			url : "showThree",
    			async : true,
    			success : function(data) {
    				option = {
    					title : {
    						text : '学生考试成绩图',
    						subtext : '例子'
    					},
    					tooltip : {
    						trigger : 'axis'
    					},
    					legend : {
    						data : [ '语文成绩', '数学成绩', '英语成绩' ]
    					},
    					toolbox : {
    						show : true,
    						feature : {
    							dataView : {
    								show : true,
    								readOnly : false
    							},
    							magicType : {
    								show : true,
    								type : [ 'line', 'bar' ]
    							},
    							restore : {
    								show : true
    							},
    							saveAsImage : {
    								show : true
    							}
    						}
    					},
    					calculable : true,
    					xAxis : [ {
    						type : 'category',
    						data : data.name
    					} ],
    					yAxis : [ {
    						type : 'value'
    					} ],
    					series : [ {
    						name : '语文',
    						type : 'bar',
    						data : data.chinese,
    
    					}, {
    						name : '数学',
    						type : 'bar',
    						data : data.math
    
    					}, {
    						name : '英语',
    						type : 'bar',
    						data : data.english
    
    					}
    
    					]
    				};
    				myChart.setOption(option);
    			}
    		})
    	})
    </script>
    </head>
    
    <body>
    
    	<div id="bar1" style="width: 600px; height: 450px;"></div>
    
    	<div id="bar2" style="width: 600px; height: 450px;"></div>
    
    	<div id="bar3" style="width: 800px; height: 650px;"></div>
    
    </body>
    </html>
    

    ECharts柱状图更多使用方法 http://echarts.baidu.com/index.html

    展开全文
  • 中文转换英文,首先引入pom文件 <groupId>com.belerweb</groupId> <artifactId>pinyin4j <version>2.5.0 工具类: import net.sourceforge.pinyin4j.PinyinHelper; import ...

    中文转换英文,首先引入pom文件

     <dependency>
              <groupId>com.belerweb</groupId>
              <artifactId>pinyin4j</artifactId>
              <version>2.5.0</version>
          </dependency>

    工具类:

    import net.sourceforge.pinyin4j.PinyinHelper;
    import net.sourceforge.pinyin4j.format.HanyuPinyinCaseType;
    import net.sourceforge.pinyin4j.format.HanyuPinyinOutputFormat;
    import net.sourceforge.pinyin4j.format.HanyuPinyinToneType;
    import net.sourceforge.pinyin4j.format.HanyuPinyinVCharType;
    import net.sourceforge.pinyin4j.format.exception.BadHanyuPinyinOutputFormatCombination;
    
    /**
     * @Author: zhukai
     * @Description: 将姓名汉字转换成拼音
     * @Date: create in 2017/8/1.
     */
    public class Pinyin4jUtil {
        // 名字长度
        private static int NAME_LENGTH = 3;
        // 将汉字转换为全拼
        public static String getPingYin(String src) {
    
            char[] name = src.toCharArray();
            String[] newName = new String[name.length];
            HanyuPinyinOutputFormat pyFormat = new HanyuPinyinOutputFormat();
            pyFormat.setCaseType(HanyuPinyinCaseType.LOWERCASE);
            pyFormat.setToneType(HanyuPinyinToneType.WITHOUT_TONE);
            pyFormat.setVCharType(HanyuPinyinVCharType.WITH_V);
            String account = "";
            int length = name.length;
            try {
                // 名字大于等于3个字的时候,姓取全称,名取首字母。
                if(length>=NAME_LENGTH){
                    for (int i = 0; i < length; i++) {
                        // 截取姓
                        if(i==0){
                            // 判断是否为汉字字符
                            if (Character.toString(name[i]).matches("[\\u4E00-\\u9FA5]+")) {
                                newName = PinyinHelper.toHanyuPinyinStringArray(name[i], pyFormat);
                                account += newName[0];
                            } else
                                account += Character.toString(name[i]);
                        }else{
                            account += getPinYinHeadChar(Character.toString(name[i]));
                        }
    
                    }
                }else{
                   // 只有2个字的名字,账号是名字的拼音全称
                    for (int i = 0; i < length; i++) {
                        // 判断是否为汉字字符
                        if (Character.toString(name[i]).matches("[\\u4E00-\\u9FA5]+")) {
                            newName = PinyinHelper.toHanyuPinyinStringArray(name[i], pyFormat);
                            account += newName[0];
                        } else
                            account += Character.toString(name[i]);
                    }
                }
                return account;
            } catch (BadHanyuPinyinOutputFormatCombination e1) {
                e1.printStackTrace();
            }
            return account;
        }
    
        // 返回中文的首字母
        public static String getPinYinHeadChar(String str) {
    
            String convert = "";
            for (int j = 0; j < str.length(); j++) {
                char word = str.charAt(j);
                String[] pinyinArray = PinyinHelper.toHanyuPinyinStringArray(word);
                if (pinyinArray != null) {
                    convert += pinyinArray[0].charAt(0);
                } else {
                    convert += word;
                }
            }
            return convert;
        }
    }

     

    展开全文
  • 各种文件名:有纯小写、纯大写、还有大小写混合等。 但,而有些场合,对文件名大小写字母有敏感,有要求的!...为此,今推荐一款,批量文件名(含文件夹)大小写字母转换工具。 其特点:转换准确、快速!很好用噢!
  • 这个类是全国各大快递公司名称中英文转换 使用中文名称可以转换英文缩写 例如 申通快递----->STO 或 STO------>申通快递
  • 这就是“换行”和“回车”的来历,从它们的英语名字上也可以看出一二。 后来,计算机发明了,这两个概念也就被般到了计算机上。那时,存储器很贵,一些科学家认为在每行结尾加两个字符太浪费了,加一个就可以。...

    http://casec12.javaeye.com/blog/523160

    今天,我总算搞清楚“回车”(carriage return)和“换行”(line feed)这两个概念的来历和区别了。
    在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33)的玩意,每秒钟可以打10个字符。但是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正好可以打两个字符。要是在这0.2秒里面,又有新的字符传过来,那么这个字符将丢失。

    于是,研制人员想了个办法解决这个问题,就是在每行后面加两个表示结束的字符。一个叫做“回车”,告诉打字机把打印头定位在左边界;另一个叫做“换行”,告诉打字机把纸向下移一行。

    这就是“换行”和“回车”的来历,从它们的英语名字上也可以看出一二。

    后来,计算机发明了,这两个概念也就被般到了计算机上。那时,存储器很贵,一些科学家认为在每行结尾加两个字符太浪费了,加一个就可以。于是,就出现了分歧。

    Unix系统里,每行结尾只有“<换行>”,即“/n”;Windows系统里面,每行结尾是“<换行><回车>”,即“/n/r”;Mac系统里,每行结尾是“<回车>”。一个直接后果是,Unix/Mac系统下的文件在Windows里打开的话,所有文字会变成一行;而Windows里的文件在Unix/Mac下打开的话,在每行的结尾可能会多出一个^M符号。

    c语言编程时(windows系统)

    /r 就是return 回到 本行 行首 这就会把这一行以前的输出 覆盖掉

    如:
    int main() {

    cout << "hahaha" << "/r" << "xixi" ;


    }
    最后只显示 xixi 而 hahaha 背覆盖了

    /n 是回车+换行 把光标 先移到 行首 然后换到下一行 也就是 下一行的行首拉

    int main() {

    cout << "hahaha" << "/n" << "xixi" ;


    }

     

     

    原文:http://www.php-oa.com/

    本文深入揭露 Windows & Unix 格式差异, 及因此而导至的各种问题.
    同时介绍了一些与之相关的查看和操作工具, 并在 Windows, Unix 进行举例.
    1. 问题提出:
    我们可能会遇到过这样一些困惑:
    (1) 如何查看一个文件或数据流的二进制格式(以十六进制格式显示)?
    (2) 为什么在 windows下编译的 shell 脚本在 Unix下不能执行?
    为什么在 windows下编辑的 C 源文件在有些 gcc 编译器下不能编译?
    (3) 为什么我在 vi 等编器下打开一个文本文件会包含 ^M, 如何把它去掉?
    为什么我在 windows 上用记事本打开 unix上的文件, 文件都不换行?
    (4) 如何删除文件行尾的 空格 或 tab?
    如何把文件中的 tab 转换成 空格, 或者把 空格 转换成 tab?
    如何只转换行首 tab 转换成 空格?

     

    2. 分析与方案:
    (1) 如何查看一个文件的二进制格式(以十六进制格式显示)?
    查看任意文件或数据流的二进制格式, 我们非常常用.
    方法一: 在 UtraEdit 使用 Ctrl + H 切换到十六进制编辑模式.
    ** 注意 ** :
    此方法一有缺陷, 它会将行末的单个”换行符”显示成 “回车” + “换行” 两个字符.
    这样会使问题 (2)(3)(4) 无法用此工具正确查看.
    方法二: 使用文件或流的二进制查看工具 fbin
    fbin 可以运行于 windows 和各种 Unix 平台,
    如下例的命令显示文件的前48字节:
    $ fbin xx.c 0×30
    filename: ‘xx.c’
    filelen : 0×68(104), offset: 0×38, max output: 0×30
    00000000: 2369 6E63 6C75 6465 3C73 7464 696F 2E68 #include<stdio.h
    00000010: 3E0D 0A0D 0A69 6E74 6D61 696E 2829 0D0A >….intmain()..
    00000020: 7B0D 0A20 2020 2063 6861 7209 2020 2020 {.. char.
    fbin 能准确显示文件中的每一个字节. (更多详细实例见后文)

    (2) 为什么在 windows下编辑的 shell 脚本在 Unix下不能执行?
    为什么在 windows下编辑的 C 源文件在有些 gcc 编译器下不能编译?
    原因分析:
    unix 的 shell 脚本不能识别 “回车符” (即: CR, ‘r’,十六进制显示为0D),
    Windows 文件格式(详细分析见下文) 换行时, 总是以 “回车” + “换行”
    (可以借助上一问介绍的 fbin 工具, 查看文件中是否包含 “回车换行” 对),
    导到 unix 下的 shell 无法正常解释.
    解决方法:
    就是把 windows 格式的中的 “回车” 符删除, 删除.
    方法一: 使用 vi 打开源文件, 把 ‘rn’ 替换成 ‘n’
    ** 缺点 ** : 不适合大量文件的批量作业.
    方法二: 使用 UtraEdit 把 Windows 格式的文件转换成 Unix 格式.
    (菜单)文件–>转换–>Unix转DOS
    ** 缺点 ** : 不适合大量文件的批量作业.
    方法三: Unix 下的 dos2unix 命令, 如 $ dos2unix -k xx.c
    ** 缺点 ** :
    此方法有一致命缺陷, 它会改变原来的文件属性.
    如一个可执行 shell 脚本的可执行属性及其它属性, 转换后都将会丢掉
    (即使用 -k 也只是能保留住原来的日期.)
    ** 优点 ** : 适合大量普通文件本文件的批量作业.
    方法四: win2unix (windows, unix 均可使用), 功能类似 dos2unix,
    如 win2unx xx.c (更多详细实例见后文)
    ** 优点** :
    克服了 dos2unix 的所有缺点(见上), 它能保留源文件的任何属性.
    还可以返回转换即 unix2win
    适合大量文件的批量作业.

    (3) 为什么我在 vi 等编器下打开一个文本文件会包含 ^M, 如何把它去掉? (见结论 4, 5)
    为什么我在 windows 上用记事本打开 unix上的文件, 文件都不换行? (见结论 1)
    原因分析:
    要解决这个问题, 必先弄清 unix 与 windows 文本文件的差异:
    1) 磁盘中 Windows 文本文件总是以 “回车” + “换行”的形式进行换行的.
    2) 磁盘中 Unix 格式的文本文件, 总是以”换行符”(即: LF, ‘n’) 换行, 而非 “回车换行符”.
    (Unix 规定: unix 文本文件保存到磁盘时, 总是自动把 “回车换行符” 转换成 “回车符” 保存,
    输出到终端时由终端自动将将 “回车符” 转换成 “回车换行符” 输出.)
    ** 容易看出 **:
    Windows 格式的文件换行时, 总是比 Unix格式的文件多一个 “回车” (’r’) 符.这是从老式的打字机上面遗传下来的,老式的打字机中的回车是指打印头回到行首,换行是进纸并开始下一行打印。
    ** 结论 1 **:
    这样在 windows 的记事本中打开 Unix 格式的文件时, 因为文件中没有 ‘r’, 所以无法正常显示.
    结果就会把所有的内容显示在同一行中.
    ** 结论 2 **:
    UtraEdit 等工具会自动检测文件中是否包含 ‘r’, 当检查行末缺少 ‘r’时, 一般它会提示
    要求进行 Unix 到 Windows 格式的转换. (相信大家都遇到这个提示信息).
    ** 结论 3 **:
    UtraEdit 和 vi 等工具, 在保存文件时会自动依照文件原来的格式进行保存. 即:
    如打开的如是 windows 格式它会把文件依然按 windows 格式保存 (不进行自动转换).
    如打开的如是 unix 格式它会把文件依然按 unix 格式保存 (不进行自动转换).
    ** 结论 4 **:
    向 UtraEdit 打开的 Unix 格式文件中, 通过粘贴板 “粘贴” Windows 格式的若干片断行时
    (或反之, 即向 Windows 格式文件中, 通过粘贴板 “粘贴” Unix 格式的若干片断行时),
    代码片断中的 “回车换行符” “不会” 自动转换成单个 “换行” 符(反之亦然).
    这样, 该文件中就会出现 “回车符” 与 “回车换行符” 互相夹杂.
    即, 文件中既有单独的 “回车符” 也有 成对的 “回车换行符”.
    ** 结论 5 **:
    vi 编辑器等, 既能正确显示”规则”的 Unix 格式文件, 也能正确显示”规则”的 Windows 格式文件,
    但, 对包含单独的 “回车符”, 同时成对的 “回车换行符”的不规则文件 (产生原因见结论 4),
    vi 将把回车符以 ^M 的形式显示.
    解决方法:
    使用类似问题 2 提供的解决方法即可解决, 不再骜述.
    将 unix 转换成 Windows 格式时, 使用 unix2dos 或 win2unix -r(-r 代表反方向)即可.

    (4) 如何删除文件行尾的 空格 或 tab?
    如何把文件中的 tab 转换成 空格, 或者把 空格 转换成 tab?
    如何只转换行首 tab 转换成 空格?
    问题分析:
    出于各种需要, 特别是编辑 C/C++, Java 等源程序时, 常希望将源文件中的 tab 成空格,
    或将空格转换成 tab, 同时删除行尾不必要的空格或 tab 等.
    如果源程序的正文中字符串中包含”空格”或”tab”时, 则只希望只转换行首的”空格”或”tab”.
    解决方法:
    如果是单个文件, 直接使用一些编辑器自带的转换功能转换.
    如果是想批量转换, 不防试试 tab2sp 进行转换, 不仅适合批量文件, 还适合数据流.
    方法一: 使用 UtraEdit 的转换功能, 即: (菜单)格式–>转换 TAB 为空格, …
    ** 缺点 **:
    不适合大量文件的批量作业.
    方法二: tab2sp (适合 windows, 各种 unix 平台),
    如 tab2sp -t -w8 xx.c (更多详细实例见后文)
    ** 优点 **:
    适合大量文件的批量作业.
    适应文件或流的二进制查看工具 fbin

    3. 工具详解: fbin, win2unix, tab2sp 等对流或文件进行批量查看/转换
    (1) 工具简介
    fbin, win2unix, tab2sp 等工具对流或文件进行批量查看/转换,
    适合 Windows 和 各种 Unix 平台.
    (2) fbin - 查看流/文件的二进制格式
    在命令行上键入下面命令即可查看在线帮助(部分内容未列出)
    $ fbin –help
    fbin - display file with hex format, version 1.0.4
    Copyright(C) eyBuild Group, 2005, 2006. All Rights Reserved.
    http://www.eybuild.com, eybuild@hotmail.com
    Usage: fbin [options] [fname [0x][offset] [maxlen] | [file1] …]
    -h –help - show this help
    -w[num] - specify word-width [2/4], default 2
    -p - pause for every screen
    -v - verbose mode
    -l - process file list replace ‘fname’ …
    fname - file name to display
    offset - hex number, ‘0x’ is optional.
    offset >= 0 from the begining of input file,
    offset < 0 from the end of input file
    maxlen - max length to print
    EXAMPLES:
    win2unix -p foo.bin
    print at most 64 (0×40) bytes from offset 0×200:
    fbin foo.bin 0×200 0×40
    print last 32 (0×20) bytes with 4-bytes word-width:
    fbin -w4 foo.bin -20
    process file list:
    fbin -v -l f1 f2 f3 f4 f5 f6
    例1. 查看一个文件前 64 个字节二进制:
    (Unix/Windos 执行下面命令会得到相同结果)
    $ fbin fbin.c 0 40
    00000000: 2F2A 2066 6269 6E2E 6320 2D20 6C69 7374 /* fbin.c - list
    00000010: 2066 696C 6520 7769 7468 2062 696E 6E61 file with binna
    00000020: 7279 2066 6F72 6D61 7420 2A2F 0A0A 2F2A ry format */../*
    00000030: 2043 6F70 7972 6967 6874 2843 2920 6579 Copyright(C) ey
    例2. 查看一个文件最后 64 个字节二进制:
    (Unix/Windos 执行下面命令会得到相同结果)
    $ fbin fbin.c -40
    000022D5: 2020 2061 7267 632D 2D2C 2061 7267 762B argc–, argv+
    000022E5: 2B3B 0A20 2020 2020 2020 2067 6F74 6F20 +;. goto
    000022F5: 4E45 5854 3B0A 2020 2020 7D0A 0A20 2020 NEXT;. }..
    00002305: 2072 6574 7572 6E20 4F4B 3B0A 7D0A 0A0A return OK;.}…
    例3. 查看一个文件从 128 字节开始的 64 个字节二进制 (4 字节宽度):
    (Unix/Windos 执行下面命令会得到相同结果)
    $ fbin -w4 fbin.c 40 40
    00000040: 4275696C 64204772 6F75702C 20323030 Build Group, 200
    00000050: 352C2032 3030362E 20416C6C 20526967 5, 2006. All Rig
    00000060: 68747320 52657365 72766564 2E202A2F hts Reserved. */
    00000070: 0A0A2F2A 0A6D6F64 69666963 6174696F ../*.modificatio
    例4. 批量显示查找(包含子目录)到的所有文件 (4 字节宽度):
    Unix 命令:
    $ find ../bin -name “*.exe” | xargs fbin -w4 -l -v |less
    filename: ‘../bin/csp2bin.exe’
    filelen : 0×18000(98304)
    00000000: 4D5A9000 03000000 04000000 FFFF0000 MZ…………..
    00000010: B8000000 00000000 40000000 00000000 ……..@…….
    00000020: 00000000 00000000 00000000 00000000 …………….
    00000030: 00000000 00000000 00000000 E0000000 …………….
    00000040: 0E1FBA0E 00B409CD 21B8014C CD215468 ……..!..L.!Th
    00000050: 69732070 726F6772 616D2063 616E6E6F is program canno
    00000060: 74206265 2072756E 20696E20 444F5320 t be run in DOS
    00000070: 6D6F6465 2E0D0D0A 24000000 00000000 mode….$…….
    00000080: 08A64111 4CC72F42 4CC72F42 4CC72F42 ..A.L./BL./BL./B
    00000090: 37DB2342 4EC72F42 7AE12442 4DC72F42 7.#BN./Bz.$BM./B
    000000A0: CFDB2142 59C72F42 2ED83C42 4FC72F42 ..!BY./B..<BO./B
    000000B0: 4CC72E42 0FC72F42 7AE12542 26C72F42 L..B../Bz.%B&./B
    000000C0: 52696368 4CC72F42 00000000 00000000 RichL./B……..
    000000D0: 00000000 00000000 00000000 00000000 …………….
    000000E0: 50450000 4C010300 3642A445 00000000 PE..L…6B.E….
    000000F0: 00000000 E0000F01 0B010600 00000100 …………….
    00000100: 00901000 00000000 F5A80000 00100000 …………….
    00000110: 00100100 00004000 00100000 00100000 ……@………

    Windos 命令如下命令, 会得到相同结果:
    E:> for /F %I in (’dir /w /b /s /A:-D eybuildbin’) do fbin -w2 -v -l %I | more
    (3) win2unix - Windows 与 Unix 文件格式互转换工具
    在命令行上键入下面命令即可查看在线帮助(部分内容未列出)
    $ win2unix –help
    win2unix - translate file between windows and unix format, version 1.0.5
    Usage: win2unix [options] [[src] [dst] | [file1] …]
    -h –help - show this help
    -r - translate file from unix format to windows
    -v - verbose mode
    -l - process file list replace ’src’ & ‘dst’ pair
    src - source file or dectory
    dst - destination file or dectory
    EXAMPLES:
    win2unix foo.txt
    convert unix to windows format:
    win2unix -r -b src.txt dst.txt
    process file list:
    win2unix -v -l f1 f2 f3 f4 f5 f6
    例1. Unix 格式转换成 Windows 格式:
    $ win2unx -r fbin.c
    查看二进制结果如下, 与fbin中的”例1″对比容易发现, 第3行中原来的0A0A(两个”换行符”)
    被转换成了 0D0A0D0A (两对”回车换行符”).
    $ fbin fbin.c 0 40
    00000000: 2F2A 2066 6269 6E2E 6320 2D20 6C69 7374 /* fbin.c - list
    00000010: 2066 696C 6520 7769 7468 2062 696E 6E61 file with binna
    00000020: 7279 2066 6F72 6D61 7420 2A2F 0D0A 0D0A ry format */….
    00000030: 2F2A 2043 6F70 7972 6967 6874 2843 2920 /* Copyright(C)
    例2. Windows 格式转换成 Unix 格式:
    $ win2unx fbin.c
    查看二进制结果如下, 与 “例1″对比容易发现, 第3行中原来的0D0A0D0A (两对”回车换行符”)
    被转换成了 0A0A(两个”换行符”)
    $ fbin fbin.c 0 40
    00000000: 2F2A 2066 6269 6E2E 6320 2D20 6C69 7374 /* fbin.c - list
    00000010: 2066 696C 6520 7769 7468 2062 696E 6E61 file with binna
    00000020: 7279 2066 6F72 6D61 7420 2A2F 0A0A 2F2A ry format */../*
    00000030: 2043 6F70 7972 6967 6874 2843 2920 6579 Copyright(C) ey
    例3. 批量转换查找(包含子目录)到的所有文件:
    $ find src -name “*.c” | xargs win2unix -l -v
    convert ‘win’ to ‘unix’ format …
    src/csp2bin.c
    src/tab2sp.c
    src/fbin.c
    src/win2unix.c

    Windos 命令如下命令, 会得到相同结果:
    E:> for /F %I in (’dir /w /b /s /A:-D src/*.c’) do win2unix -v -l %I
    (4) tab2sp - tab 与 空格的互转换
    在命令行上键入下面命令即可查看在线帮助(部分内容未列出)
    $ win2unix –help
    tab2sp - convert tabs to spaces or revert, version 1.0.2
    Usage: tab2sp [options] [[src] [dst] | [file1] …]
    -h –help - show this help
    -r - convert spaces to tabs
    -p - only convert line prefixed spaces or tabs
    -t - remove tail tabs and spaces
    -w[num] - specify tab width [1-8], default 4
    -no - don’t do any convert
    -v - verbose mode
    -l - process file list replace ’src’ & ‘dst’ pair
    src - source file
    dst - destination file
    EXAMPLES:
    tab2sp -r < foo.txt
    convert tabs to spaces:
    tab2sp foo.txt
    convert spaces to tabs and remove tail tabs, spaces:
    tab2sp -r -t foo.txt
    only remove tail tabs and spaces:
    tab2sp -no -t foo.txt
    process file list:
    tab2sp -v -l f1 f2 f3 f4 f5 f6
    例1. 将文件中的所 tab 转换成 “空格”(默认 4 字符宽度), 并删除尾部 tab 和空格:
    $ tab2sp -t fbin.c
    可自行用 fbin 查看二进制结果如下, 确认是否 tab(09) 全部转成成了空格(20).
    本处不再把示例结果列出.
    例2. 将文件中的所 “空格” 转换成 tab (默认 4 字符宽度), 并删除尾部 tab 和空格:
    $ tab2sp -r -t fbin.c
    例3. 将文件中的所 tab 转换成空格(指定为 8 字符宽度), 并删除尾部 tab 和空格:
    $ tab2sp -t -w8 fbin.c
    例4. 只删除文件 f1, f2, f3 f4 行尾的空格
    $ tab2sp -no -t -l f1 f2 f3 f4
    例5. 只转换行首 tab 为空格(指定为 8 字符宽度), 并删除尾部 tab 和空格:
    $ tab2sp -p -t -l f1 f2 f3 f4
    例6. 批量转换查找(包含子目录)到的所有文件, 命令可以自由组合:
    $ find src -name “*.c” | xargs tab2sp -l -v -w8 -p
    convert ‘tab’ to ’space’ format …
    src/csp2bin.c
    src/tab2sp.c
    src/fbin.c
    src/win2unix.c

    Windos 命令如下命令, 会得到相同结果:
    E:> for /F %I in (’dir /w /b /s /A:-D src/*.c’) do tab2sp -l -v -w8 -p %I

    展开全文
  • 这就是“换行”和“回车”的来历,从它们的英语名字上也可以看出一二。 后来,计算机发明了,这两个概念也就被般到了计算机上。那时,存储器很贵,一些科学家认为在每行结尾加两个字符太浪费了,加一个就可以。...
  • 微信是大家常用的通信工具,有些聊天记录的语音是我们想要长期保存或转发给其他人的。今天介绍一下微信语音的备份保存方法。收藏的方法方法很简单,长按语音点击收藏就可以了,以后想听可以在“我”-...
  • 工具名字叫silk2mp3,名字通俗易懂,就是将silk转换为mp3格式,2也就是英文to的意思,老外经常这么使用(老外很会玩哈),软件的下载方法可以参考这篇文章:【一起玩光剑】光剑第二期:新建GitHub上传OTA初始程序...
  • 在管理界面找到具体的报表名称和字段: 选择设置: ...CREATE TABLE `dim_search_scenario_info` ( `scenario` varchar(50) COLLATE utf8mb4_bin DEFAULT NULL, `chinese` varchar(100) COLLATE utf8mb4_bin ...
  • ExcelToLua工具

    千次阅读 2015-12-05 11:45:56
    前言游戏开发中基本都需要这么一个工具,就是把策划配的excel表转换为我们程序需要的格式读取。刚好公司新项目也有这么个需求:给你一个xml配置,对应配置每张excel表需要读取的字段,需要读取的工作薄,字段名,...
  • 知乎高赞:文中列举了互联网一线大厂程序员都在用的工具集合,涉及面非常广,小白和老手都可以进来看看,或许有新收获。
  • 今天给大家分享一个windows的批处理文件(.bat文件)exe可执行文件的工具。先感谢开源大神们为我们提供这些NB的软件(下边那个F..K..的名字好像是作者哈)先向大神致...
  • 而下面是十个免费的可以用来进行Web的负载/压力测试的工具,这样,你就可以知道你的服务器以及你的WEB应用能够顶得住多少的并发量,以及你的网站的性能。我相信,北京奥组委的订票网站的开发团队并不知道有这样的...
  • []常用CASE工具介绍

    千次阅读 2007-07-10 09:09:00
    常用CASE工具介绍 常用CASE工具介绍 一,概述今天, 代码变得日益简单, 在Model的指导下, 思想, 设计, 分析都变得异常重要。企业业务建模工具, 产品非常多, 特别是在MDA日益流行的今天. WorkFlow是典型的业务及流程...
  • 标识符可以简单的理解成一个名字。 在Java中,我们需要标识代码的很多元素,包括类名、方法、字段、变量、包名等等。我们选择的那个名称就称为标识符,一个正确的标识符需要遵循以下规则: 1. 标识符可以由字母、...
  • 中文名称转英文拼音

    2011-12-16 13:09:40
    java 中文名称转英文拼音java,所有中文名称都转换成英文字母,然后去重复
  • XlsToPG是一个简写,它其实是一个excel数据转换xlssql工具,可以把数据库用户把Excel数据导入到PostgreSQL数据库,很方便的小工具。 PostgreSQLPostgreSQL 是一个自由的对象-关系数据库服务器(数据库管理系统),...
  • 首先,打开fckeditor下的fckconfig.js文件,找到FCKConfig.ToolbarSets["Default"]和FCKConfig.ContextMenu 在他们后面加上”InsertCode”,这个当然是自己要添加的工具栏的名字了。然后,我们在“fckeditor/editor/...
  • 繁简体转换英文模拟中文最佳,汪峰歌词生成器,职业名称词库,词典库,反义词库,否定词库,汽车品牌词库,汽车零件词库,连续英语切割,各种中文词向量,公司名称大全,古诗词库,IT词库,财经词库,成语词库,...
  • 【数字转英文】 将选中区域(默认)或已使用区域存储格的金额数字转换成英文格式显示的表达字符串,为三资企业制作客户外汇付款通知书的理想工具。 【文本转EXCEL】 将文本文件按指定的分隔符号分隔一次性导入到...
  • eclipse工具下载 首先说明,本篇内容适用于刚开始学java的同学,老手大牛等可以路过。 不得不说vs确实很强大,常用的都在安装包里集成了,几乎可以一键安装,直接使用,操作起来非常方便. eclipse刚开始使用相对vs来...
  • 但是由于有些电影或者电视剧资源有限,能够下载下来的格式并不支持,这个时候就需要用到视频格式转换器啦,可以帮助你从任何音视频格式转换到你需要的格式,小编给大家带来了几款视频下载转换工具。ClipGrab for Mac...
  • ASP.NET网站实现中英文转换(本地化资源) 摘要:随着计算机网络的发展,一些商业机构也开始向国际市场迈进。因此这些商业的机构的网站 也开始面向全世界的用户,要求网站具有多语言的选择,实现本地化。...
  • linux源代码分析和阅读工具比较()

    千次阅读 2009-01-28 10:00:00
    linux源代码分析和阅读工具比较()2008-11-30 22:36Windows下的源码阅读工具Souce Insight凭借着其易用性和多种编程语言的支持,无疑是这个领域的“带头大哥”。Linux/UNIX环境下呢?似乎仍然是处于百花齐放,...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 76,869
精华内容 30,747
关键字:

名字转换英文工具