汉字转拼音再转ASCII(合集10篇)

destiny 分享 时间: 收藏本文

【简介】感谢网友“destiny”参与投稿,以下是小编为大家准备了汉字转拼音再转ASCII(共10篇),欢迎参阅。

篇1:汉字转拼音再转ASCII

汉字可以转成拼音,可以在转成ASCII码,然后就可以转成十六进制数,再就可以转成0和1组成的二进制帧了!

比如说:

我爱你

-> wo ai ni

-> 119 111 32 97 105 32 110 105

->77 6F 20 61 69 20 6E 69

->0111 0111 0110 1111 0010 0000 0110 0001 0110 1001 0010 0000 0110 1110 0110 1001

看上去很吊的样子,估计发报就是这么干的!

get(final String input) { ArrayListtokens = new ArrayList(); if (!mHasChinaCollator || TextUtils.isEmpty(input)) {// return empty tokens.return tokens; } final int inputLength = input.length(); final StringBuilder sb = new StringBuilder(); int tokenType = Token.LATIN; // Go through the input, create a new token when // a. Token type changed // b. Get the Pinyin of current charater. // c. current character is space. for (int i = 0; i < inputLength; i++) {final char character = input.charAt(i);if (character == ' ') { if (sb.length() > 0) { addToken(sb, tokens, tokenType); }} else if (character < 256) { if (tokenType != Token.LATIN && sb.length() > 0) { addToken(sb, tokens, tokenType); } tokenType = Token.LATIN; sb.append(character);} else if (character < FIRST_UNIHAN) { if (tokenType != Token.UNKNOWN && sb.length() > 0) { addToken(sb, tokens, tokenType); } tokenType = Token.UNKNOWN; sb.append(character);} else { Token t = getToken(character); if (t.type == Token.PINYIN) { if (sb.length() > 0) {addToken(sb, tokens, tokenType); } tokens.add(t); tokenType = Token.PINYIN; } else { if (tokenType != t.type && sb.length() > 0) {addToken(sb, tokens, tokenType); } tokenType = t.type; sb.append(character); }} } if (sb.length() > 0) {addToken(sb, tokens, tokenType); } return tokens; } private void addToken(final StringBuilder sb, final ArrayListtokens, final int tokenType) { String str = sb.toString(); tokens.add(new Token(tokenType, str, str)); sb.setLength(0); } //The fillowing lines are provided and maintained by Mediatek inc. private class DialerSearchToken extends Token { static final int FIRSTCASE = 0; static final int UPPERCASE = 1; static final int LOWERCASE = 2; } public String getTokensForDialerSearch(final String input, StringBuilder offsets){ if(offsets == null || input == null || TextUtils.isEmpty(input)){ // return empty tokens return null; }StringBuilder subStrSet = new StringBuilder(); ArrayListtokens = new ArrayList(); ArrayListshortSubStrOffset = new ArrayList(); final int inputLength = input.length(); final StringBuilder subString = new StringBuilder(); final StringBuilder subStrOffset = new StringBuilder(); int tokenType = Token.LATIN; int caseTypePre = DialerSearchToken.FIRSTCASE; int caseTypeCurr = DialerSearchToken.UPPERCASE; int mPos = 0; // Go through the input, create a new token when // a. Token type changed // b. Get the Pinyin of current charater. // c. current character is space. // d. Token case changed from lower case to upper case, // e. the first character is always a separated one // f character == '+' || character == '#' || character == '*' || character == ',' || character == ';' for (int i = 0; i < inputLength; i++) {final char character = input.charAt(i);if (character == '-' || character == ',' ){ mPos++;} else if (character == ' ') { if (subString.length() > 0) { addToken(subString, tokens, tokenType); addOffsets(subStrOffset, shortSubStrOffset); } addSubString(tokens,shortSubStrOffset,subStrSet,offsets); mPos++; caseTypePre = DialerSearchToken.FIRSTCASE;} else if (character < 256) { if (tokenType != Token.LATIN && subString.length() > 0) { addToken(subString, tokens, tokenType); addOffsets(subStrOffset, shortSubStrOffset); } caseTypeCurr = (character>='A' && character<='Z')?DialerSearchToken.UPPERCASE:DialerSearchToken.LOWERCASE; if(caseTypePre == DialerSearchToken.LOWERCASE && caseTypeCurr == DialerSearchToken.UPPERCASE){ addToken(subString, tokens, tokenType); addOffsets(subStrOffset, shortSubStrOffset); } caseTypePre = caseTypeCurr; tokenType = Token.LATIN; Character c = Character.toUpperCase(character); if(c != null){ subString.append(c); subStrOffset.append((char)mPos); } mPos++;} else if (character < FIRST_UNIHAN) {//Comment out. Do not cover unknown characters SINCE they can not be input.// if (tokenType != Token.UNKNOWN && subString.length() > 0) {// addToken(subString, tokens, tokenType);// addOffsets(subStrOffset, shortSubStrOffset);// caseTypePre = Token.FIRSTCASE;// }// tokenType = Token.UNKNOWN;// Character c = Character.toUpperCase(character);// if(c != null){// subString.append(c);// subStrOffset.append((char)(mPos));// } mPos++;} else { Token t = getToken(character); int tokenSize = t.target.length(); //Current type is PINYIN if (t.type == Token.PINYIN) { if (subString.length() > 0) {addToken(subString, tokens, tokenType);addOffsets(subStrOffset, shortSubStrOffset); } tokens.add(t); for(int j=0; j < tokenSize;j++) subStrOffset.append((char)mPos); addOffsets(subStrOffset,shortSubStrOffset); tokenType = Token.PINYIN; caseTypePre = DialerSearchToken.FIRSTCASE; mPos++; } else { //Comment out. Do not cover special characters SINCE they can not be input.// if (tokenType != t.type && subString.length() > 0) {//addToken(subString, tokens, tokenType);//addOffsets(subStrOffset, shortSubStrOffset);//caseTypePre = Token.FIRSTCASE;// }else{// caseTypeCurr = (character>='A' && character<='Z')?Token.UPPERCASE:Token.LOWERCASE;// if(caseTypePre == Token.LOWERCASE && caseTypeCurr == Token.UPPERCASE){// addToken(subString, tokens, tokenType);// addOffsets(subStrOffset, shortSubStrOffset);// }// caseTypePre = caseTypeCurr; // }// tokenType = t.type;// Character c = Character.toUpperCase(character);// if(c != null){// subString.append(c);// subStrOffset.append(mPos);// } mPos++; }}//IF the name string is too long, cut it off to meet the storage request of dialer search.if(mPos > 127) break; } if (subString.length() > 0) {addToken(subString, tokens, tokenType);addOffsets(subStrOffset, shortSubStrOffset); } addSubString(tokens,shortSubStrOffset,subStrSet,offsets); return subStrSet.toString(); } private void addOffsets(final StringBuilder sb, final ArrayListshortSubStrOffset){ String str = sb.toString(); shortSubStrOffset.add(str); sb.setLength(0); } private void addSubString(final ArrayListtokens, final ArrayListshortSubStrOffset, StringBuilder subStrSet, StringBuilder offsets){ if(tokens == null || tokens.isEmpty())return; int size = tokens.size(); int len = 0; StringBuilder mShortSubStr = new StringBuilder(); StringBuilder mShortSubStrOffsets = new StringBuilder(); StringBuilder mShortSubStrSet = new StringBuilder(); StringBuilder mShortSubStrOffsetsSet = new StringBuilder(); for(int i=size-1; i>=0 ; i--){String mTempStr = tokens.get(i).target;len += mTempStr.length();String mTempOffset = shortSubStrOffset.get(i);if(mShortSubStr.length()>0){ mShortSubStr.deleteCharAt(0); mShortSubStrOffsets.deleteCharAt(0);}mShortSubStr.insert(0, mTempStr);mShortSubStr.insert(0,(char)len);mShortSubStrOffsets.insert(0,mTempOffset);mShortSubStrOffsets.insert(0,(char)len);mShortSubStrSet.insert(0,mShortSubStr);mShortSubStrOffsetsSet.insert(0, mShortSubStrOffsets); } subStrSet.append(mShortSubStrSet); offsets.append(mShortSubStrOffsetsSet); tokens.clear(); shortSubStrOffset.clear(); } //The previous lines are provided and maintained by Mediatek inc. }

篇2:再转空楼诗歌

再转空楼诗歌

云鹤远去数十余,遗线纸鸢各东西。又是一度春花雨,悠悠楼台芳草依。

一夜清雨,微曦浸脾。信步青石板,觅一世清明淡韵,抬首云鹤楼,看人海

滚滚红尘。青青芳菲,白墙黛瓦,红柱绿廊,林荫水榭,篇篇风景如故,画中却

没了你袅娜朦胧、凝香纤指……

想那玲珑岁月,琥珀年华。举一杯青茗问苍茫大地,抚一首新曲叹人生合离。

花开蝶舞,绿波青漪,低吟浅唱,绕梁不息,淡墨素韵,梨花杏雨,恬淡出多少

青青岁月,琉璃光影……

而今,红粉东流,夕阳西隐。谁又说得清当年是你离开了我,还是我离你而

去。氤氲的天空,带走了多少墨香笺秀、竹韵丝音……

唯有,浅冷的风衣,深褐的长靴,款款来到睡梦里。咏春、咏秋、吟夏、吟

冬。似高山轻抚如醉,似流水润泽如酥。

…… 此处隐藏7065字 ……

Doerr:

Errexit:

Result = ”"

Quit:

UpNumber = Result

End Function

篇10:白航为我两本诗集写的读后感再转

白航为我两本诗集写的读后感(再转)

精选图文