diff --git a/Utils.h b/Utils.h
index d48ed2c65f85c0b7c5804eaed2873f8df4fe1db4..bfbf10fb3add6a1bdc662824dce5e06e1e98f8a7 100644
--- a/Utils.h
+++ b/Utils.h
@@ -336,14 +336,17 @@ TrimCmd(Platform::String^ s)
 String^
 getUpperInitial(String^ str)
 {
-    if (str != nullptr || str != "") {
-        std::wstring s(str->Data());
-        auto it = str->Begin();
-        wchar_t ch[] = L" ";
-        ch[0] = towupper(it[0]);
-        return ref new String(ch);
+    if (str == nullptr || str == "") {
+        return "?";
     }
-    return "?";
+    auto it = str->Begin();
+    wchar_t ch[] = L" ";
+    int index = 0;
+    ch[0] = towupper(*it++);
+    while (it != str->End() && ch[0] == ' ') {
+        ch[0] = towupper(*it++);
+    }
+    return ref new String(ch);
 }
 
 Platform::String^