diff --git a/quic/core/quic_tag.cc b/quic/core/quic_tag.cc
index e15787b..d6c2f6c 100644
--- a/quic/core/quic_tag.cc
+++ b/quic/core/quic_tag.cc
@@ -94,10 +94,13 @@
 
 QuicTagVector ParseQuicTagVector(quiche::QuicheStringPiece tags_string) {
   QuicTagVector tag_vector;
-  std::vector<quiche::QuicheStringPiece> tag_strings =
-      quiche::QuicheTextUtils::Split(tags_string, ',');
-  for (quiche::QuicheStringPiece tag_string : tag_strings) {
-    tag_vector.push_back(ParseQuicTag(tag_string));
+  quiche::QuicheTextUtils::RemoveLeadingAndTrailingWhitespace(&tags_string);
+  if (!tags_string.empty()) {
+    std::vector<quiche::QuicheStringPiece> tag_strings =
+        quiche::QuicheTextUtils::Split(tags_string, ',');
+    for (quiche::QuicheStringPiece tag_string : tag_strings) {
+      tag_vector.push_back(ParseQuicTag(tag_string));
+    }
   }
   return tag_vector;
 }
diff --git a/quic/core/quic_tag_test.cc b/quic/core/quic_tag_test.cc
index fa031ac..13c899e 100644
--- a/quic/core/quic_tag_test.cc
+++ b/quic/core/quic_tag_test.cc
@@ -36,6 +36,7 @@
 TEST_F(QuicTagTest, ParseQuicTag) {
   QuicTag tag_abcd = MakeQuicTag('A', 'B', 'C', 'D');
   EXPECT_EQ(ParseQuicTag("ABCD"), tag_abcd);
+  EXPECT_EQ(ParseQuicTag("ABCDE"), tag_abcd);
   QuicTag tag_efgh = MakeQuicTag('E', 'F', 'G', 'H');
   EXPECT_EQ(ParseQuicTag("EFGH"), tag_efgh);
   QuicTag tag_ijk = MakeQuicTag('I', 'J', 'K', 0);
@@ -45,9 +46,15 @@
   QuicTag tag_hex = MakeQuicTag('M', 'N', 'O', static_cast<char>(255));
   EXPECT_EQ(ParseQuicTag("4d4e4fff"), tag_hex);
   EXPECT_EQ(ParseQuicTag("4D4E4FFF"), tag_hex);
+  QuicTag tag_with_numbers = MakeQuicTag('P', 'Q', '1', '2');
+  EXPECT_EQ(ParseQuicTag("PQ12"), tag_with_numbers);
+  QuicTag tag_with_custom_chars = MakeQuicTag('r', '$', '_', '7');
+  EXPECT_EQ(ParseQuicTag("r$_7"), tag_with_custom_chars);
   QuicTag tag_zero = 0;
   EXPECT_EQ(ParseQuicTag(""), tag_zero);
   QuicTagVector tag_vector;
+  EXPECT_EQ(ParseQuicTagVector(""), tag_vector);
+  EXPECT_EQ(ParseQuicTagVector(" "), tag_vector);
   tag_vector.push_back(tag_abcd);
   EXPECT_EQ(ParseQuicTagVector("ABCD"), tag_vector);
   tag_vector.push_back(tag_efgh);
@@ -58,8 +65,14 @@
   EXPECT_EQ(ParseQuicTagVector("ABCD,EFGH,IJK,L"), tag_vector);
   tag_vector.push_back(tag_hex);
   EXPECT_EQ(ParseQuicTagVector("ABCD,EFGH,IJK,L,4d4e4fff"), tag_vector);
+  tag_vector.push_back(tag_with_numbers);
+  EXPECT_EQ(ParseQuicTagVector("ABCD,EFGH,IJK,L,4d4e4fff,PQ12"), tag_vector);
+  tag_vector.push_back(tag_with_custom_chars);
+  EXPECT_EQ(ParseQuicTagVector("ABCD,EFGH,IJK,L,4d4e4fff,PQ12,r$_7"),
+            tag_vector);
   tag_vector.push_back(tag_zero);
-  EXPECT_EQ(ParseQuicTagVector("ABCD,EFGH,IJK,L,4d4e4fff,"), tag_vector);
+  EXPECT_EQ(ParseQuicTagVector("ABCD,EFGH,IJK,L,4d4e4fff,PQ12,r$_7,"),
+            tag_vector);
 }
 
 }  // namespace
