private string Hanzi2Pinyin(RequestModel request) { var result = new StringBuilder(); // 解析从客户端来的输出格式设置 PinyinFormat format = PinyinUtil.ParseFormat(request.ToneType) | PinyinUtil.ParseFormat(request.CaseType) | PinyinUtil.ParseFormat(request.VType); foreach (char ch in request.Key) { if (!PinyinUtil.IsHanzi(ch)) {// 不是汉字直接追加 result.Append(ch); continue; } // 是汉字才处理 // 是否只取第一个拼音 if (request.Multi.Equals("first", StringComparison.OrdinalIgnoreCase)) { // 拼音间追加一个空格,这里如果是多间字,拼音可能不准确 result.AppendFormat("{0} ", Pinyin4Net.GetFirstPinyin(ch, format)); continue; } string[] py = Pinyin4Net.GetPinyin(ch, format); result.AppendFormat("({0}) ", string.Join(",", py)); } return(result.ToString()); }
public void TestFirstLetter1() { const string s = "JavaScript 爱好者 传说"; const string expected = "JavaScript [a] [h] [z] [c] [s]"; var pinyin = Pinyin4Net.GetPinyin(s, null, false, true, false); Assert.AreEqual(expected, pinyin); }
public void TestFirstLetter2() { const string s = "JavaScript 爱好者 传说"; const string expected = "JavaScript [a] [h] [z] [c,z] [s,y]"; var pinyin = Pinyin4Net.GetPinyin(s, PinyinFormat.None, false, true, true); Assert.AreEqual(expected, pinyin); }
public void TestUpdate() { HanziAssert('吃', new string[] { "chi1", "ji2" }); // 通过第二个参数 true 替换了原来的拼音 chi ji Pinyin4Net.UpdateMap(new System.Collections.Generic.Dictionary <char, string[]> { { '吃', new string[] { "qie", "qia" } } }, true); HanziAssert('吃', new string[] { "qie", "qia" }); }
public void TestString1() { const string s = "Javascript 爱好者 传说"; var format = new PinyinOutputFormat(); const string expected = "Javascript ài hăo zhĕ chuán shuō"; var pinyin = Pinyin4Net.GetPinyin(s, format); Assert.AreEqual(expected, pinyin); }
public void TestString6() { const string s = "JavaScript 爱好者 传说"; var format = new PinyinOutputFormat(null, CaseFormat.LOWERCASE.ToString(), VCharFormat.WITH_U_UNICODE.ToString()); const string expected = "javascript ài hăo zhĕ chuán shuō"; var pinyin = Pinyin4Net.GetPinyin(s, format, true, false, false); Assert.AreEqual(expected, pinyin); }
public void TestString4() { const string s = "Javascript 爱好者 传说"; var format = new PinyinOutputFormat(null, CaseFormat.UPPERCASE.ToString(), VCharFormat.WITH_U_UNICODE.ToString()); const string expected = "JAVASCRIPT ÀI HĂO ZHĔ CHUÁN SHUŌ"; var pinyin = Pinyin4Net.GetPinyin(s, format, true, false, false); Assert.AreEqual(expected, pinyin); }
public void TestString2() { const string s = "Javascript 爱好者 传说"; var format = new PinyinOutputFormat(null, CaseFormat.CAPITALIZE_FIRST_LETTER.ToString(), VCharFormat.WITH_U_UNICODE.ToString()); const string expected = "Javascript Ài Hăo Zhĕ Chuán Shuō"; var pinyin = Pinyin4Net.GetPinyin(s, format); Assert.AreEqual(expected, pinyin); }
public void TestString4() { const string s = "Javascript 爱好者 传说"; var format = PinyinFormat.WITH_TONE_MARK | PinyinFormat.UPPERCASE | PinyinFormat.WITH_U_UNICODE; const string expected = "JAVASCRIPT ÀI HĂO ZHĔ CHUÁN SHUŌ"; var pinyin = Pinyin4Net.GetPinyin(s, format, true, false, false); Assert.AreEqual(expected, pinyin); }
public void TestString2() { const string s = "Javascript 爱好者 传说"; var format = PinyinFormat.WITH_TONE_MARK | PinyinFormat.CAPITALIZE_FIRST_LETTER | PinyinFormat.WITH_U_UNICODE; const string expected = "Javascript Ài Hăo Zhĕ Chuán Shuō"; var pinyin = Pinyin4Net.GetPinyin(s, format); Assert.AreEqual(expected, pinyin); }
public void TestString1() { const string s = "Javascript 爱好者 传说"; var format = PinyinFormat.WITH_TONE_MARK | PinyinFormat.LOWERCASE | PinyinFormat.WITH_U_UNICODE; const string expected = "Javascript ài hăo zhĕ chuán shuō"; var pinyin = Pinyin4Net.GetPinyin(s, format); Assert.AreEqual(expected, pinyin); }
public void TestArray() { const string s = "JavaScript 爱好者 传说"; var expected = new List <PinyinItem> { new PinyinItem('J'), new PinyinItem('a'), new PinyinItem('v'), new PinyinItem('a'), new PinyinItem('S'), new PinyinItem('c'), new PinyinItem('r'), new PinyinItem('i'), new PinyinItem('p'), new PinyinItem('t'), new PinyinItem(' '), new PinyinItem('爱') { "ai4" }, new PinyinItem('好') { "hao3", "hao4" }, new PinyinItem('者') { "zhe3" }, new PinyinItem(' '), new PinyinItem('传') { "chuan2", "zhuan4" }, new PinyinItem('说') { "shuo1", "shui4", "yue4" } }; var pinyin = Pinyin4Net.GetPinyinArray(s, PinyinFormat.None); for (int i = 0; i < expected.Count; i++) { Assert.IsTrue(expected[i].Equals(pinyin[i])); } }
public string Index(RequestModel request) { try { // 请求参数不为空才处理 if (string.IsNullOrEmpty(request.Key)) { return(string.Empty); } if (request.Cmd == "0") { return(Hanzi2Pinyin(request)); } string[] hanzi = Pinyin4Net.GetHanzi(request.Key, request.MatchAll); return(string.Join(",", hanzi)); } catch (Exception ex) { return(ex.Message); } }
public async Task <bool> StoreTelemetryAsync(RawMsg msg) { bool result = false; try { CheckDataBase(); List <string> lst = new List <string>(); msg.MsgBody.ToList().ForEach(kp => { if (kp.Value != null) { TelemetryData tdata = new TelemetryData() { DateTime = DateTime.Now, DeviceId = msg.DeviceId, KeyName = kp.Key, Value_DateTime = new DateTime(1970, 1, 1) }; tdata.FillKVToMe(kp); string _type = ""; string _value = ""; // value_boolean bool, value_string binary(4096), value_long bigint,value_datetime timestamp,value_double double,value_json binary(4096) ,value_xml binary switch (tdata.Type) { case DataType.Boolean: _type = "value_boolean"; _value = tdata.Value_Boolean.ToString().ToLower(); break; case DataType.String: _type = "value_string"; _value = $"'{tdata.Value_String?.Replace("'", "\\'")}'"; break; case DataType.Long: _type = "value_long"; _value = $"{tdata.Value_Long}"; break; case DataType.Double: _type = "value_double"; _value = $"{tdata.Value_Double}"; break; case DataType.Json: //td 一条记录16kb , 因此为了写更多数据, 我们json xml binary 全部使用 string _type = "value_string"; _value = $"'{tdata.Value_Json?.Replace("'", "\\'")}'"; break; case DataType.XML: _type = "value_string"; _value = $"'{tdata.Value_XML?.Replace("'", "\\'")}'"; break; case DataType.Binary: _type = "value_string"; _value = $"\"{Hex.ToHexString(tdata.Value_Binary)}\""; break; case DataType.DateTime: _type = "value_datetime"; _value = $"{tdata.Value_DateTime.Subtract(new DateTime(1970, 1, 1, 0, 0, 0, 0)).TotalMilliseconds}"; break; default: break; } string vals = $"device_{tdata.DeviceId:N}_{ Pinyin4Net.GetPinyin(tdata.KeyName, PinyinFormat.WITHOUT_TONE).Replace(" ", string.Empty).Replace("@", string.Empty)} USING telemetrydata TAGS('{tdata.DeviceId:N}','{tdata.KeyName}') (ts,value_type,{_type}) values (now,{(int)tdata.Type},{_value})"; lst.Add(vals); } }); TaosConnection _taos = _taospool.Get(); if (_taos.State != System.Data.ConnectionState.Open) { _taos.Open(); } var cmd = _taos.CreateCommand($"INSERT INTO {string.Join("\r\n", lst)}"); _logger.LogInformation(cmd.CommandText); int dt = await cmd.ExecuteNonQueryAsync(); _taospool.Return(_taos); _logger.LogInformation($"数据入库完成,共数据{lst.Count}条,写入{dt}条"); } catch (TaosException ex) { _logger.LogError(ex, $"{msg.DeviceId}数据处理失败{ex.ErrorCode}-{ex.Message} {ex.InnerException?.Message}"); } catch (Exception ex) { _logger.LogError(ex, $"{msg.DeviceId}数据处理失败{ex.Message} {ex.InnerException?.Message} "); } return(result); }
public static string GetPinyin(string input) { var format = new PinyinOutputFormat(ToneFormat.WITHOUT_TONE, CaseFormat.LOWERCASE, VCharFormat.WITH_U_UNICODE); return(Pinyin4Net.GetPinyin(input, format)); }
/// <summary> /// 判断拼音格式 /// </summary> /// <param name="hanzi"></param> /// <param name="expected"></param> /// <param name="format"></param> private void PinyinFormatAssert(char hanzi, string expected, PinyinOutputFormat format) { var fmted = Pinyin4Net.GetUniqueOrFirstPinyinWithFormat(hanzi, format); Assert.AreEqual(expected, fmted); }
/// <summary> /// 判断汉字与读音数组 /// </summary> /// <param name="hanzi"></param> /// <param name="expected"></param> private void HanziAssert(char hanzi, string[] expected) { var actual = Pinyin4Net.GetPinyin(hanzi); assertArrayAreEquals(expected, actual); }
public void FirstOfMultiPinyin() { var pinyin = Pinyin4Net.GetFirstPinyin('传'); Assert.AreEqual("chuan2", pinyin); }
/// <summary> /// 判断拼音格式 /// </summary> /// <param name="hanzi"></param> /// <param name="expected"></param> /// <param name="format"></param> private void PinyinFormatAssert(char hanzi, string expected, PinyinFormat format) { var fmted = Pinyin4Net.GetFirstPinyin(hanzi, format); Assert.AreEqual(expected, fmted); }