Мое решение:
Обнаружение только букв a-zA-Z и чисел с регулярным выражением Если регулярное выражение не выполнено или является пробелом, Word является Complet и затем добавляет его в список, в концеу меня есть список со всеми необходимыми словами и числами.
1- преобразовать данные в байт [] в строку
// Convert utf-8 bytes to a string.
s_unicode2 = System.Text.Encoding.UTF8.GetString(apduRsp.Data);
List<string> test = new List<string>();
if (s_unicode2.Length > 0)
{
test = GetWords(s_unicode2);
}
2 - вызвать GetWords () со строкой, преобразованной из байта []
private List<string> GetWords(string text)
{
Regex reg = new Regex("[a-zA-Z0-9]");
string Word = "";
char[] ca = text.ToCharArray();
List<string> characters = new List<string>();
for (int i = 0; i < ca.Length; i++)
{
char c = ca[i];
if (c > 65535)
{
continue;
}
if (char.IsHighSurrogate(c))
{
i++;
characters.Add(new string(new[] { c, ca[i] }));
}
else
{
if (reg.Match(c.ToString()).Success || c.ToString() == "/")
{
Word = Word + c.ToString();
//characters.Add(new string(new[] { c }));
}
else if(c.ToString() == " ")
{
if(Word.Length > 0)
characters.Add(Word);
Word = "";
}
else
{
if(Word.Length > 0)
characters.Add(Word);
Word = "";
}
}
}
return characters;
}
3- Результат от GetWords ()
values returned">
Это решение для меня на данный момент хорошо, но некоторые люди имеют 2имена, и это небольшая проблема в момент показа.