diff --git a/src/system.cpp b/src/system.cpp
index 9e4e263..2f6e3e4 100644
--- a/src/system.cpp
+++ b/src/system.cpp
@@ -18,6 +18,7 @@
 
 #include "mdrv2.hpp"
 
+#include <fstream>
 #include <iomanip>
 #include <iostream>
 #include <sstream>
@@ -72,6 +73,23 @@
         uint8_t biosVerByte = biosInfo->biosVersion;
         std::string tempS =
             positionToString(biosInfo->biosVersion, biosInfo->length, dataIn);
+        if (std::find_if(tempS.begin(), tempS.end(),
+                         [](char ch) { return !isprint(ch); }) != tempS.end())
+        {
+            std::ofstream smbiosFile(mdrType2File, std::ios_base::trunc);
+            if (!smbiosFile.good())
+            {
+                phosphor::logging::log<phosphor::logging::level::ERR>(
+                    "Open MDRV2 table file failure");
+                return result;
+            }
+            smbiosFile.clear();
+            smbiosFile.close();
+            phosphor::logging::log<phosphor::logging::level::ERR>(
+                "Find non-print char, delete the broken MDRV2 table file!");
+            return sdbusplus::xyz::openbmc_project::Inventory::Decorator::
+                server::Revision::version(result);
+        }
         result = tempS;
     }
 
