| Index: core/src/fxcrt/fx_basic_wstring.cpp
 | 
| diff --git a/core/src/fxcrt/fx_basic_wstring.cpp b/core/src/fxcrt/fx_basic_wstring.cpp
 | 
| index 131672da2b280938d339d81384c3ccca68cf8bd6..220ffbd57dad029884997333412f4085a04bf959 100644
 | 
| --- a/core/src/fxcrt/fx_basic_wstring.cpp
 | 
| +++ b/core/src/fxcrt/fx_basic_wstring.cpp
 | 
| @@ -5,8 +5,10 @@
 | 
|  // Original code copyright 2014 Foxit Software Inc. http://www.foxitsoftware.com
 | 
|  
 | 
|  #include <stddef.h>  // For offsetof().
 | 
| +#include <cctype>
 | 
|  
 | 
|  #include "core/include/fxcrt/fx_basic.h"
 | 
| +#include "core/include/fxcrt/fx_ext.h"
 | 
|  #include "third_party/base/numerics/safe_math.h"
 | 
|  
 | 
|  // static
 | 
| @@ -765,8 +767,8 @@ void CFX_WideString::FormatV(const FX_WCHAR* lpszFormat, va_list argList) {
 | 
|      }
 | 
|      if (nWidth == 0) {
 | 
|        nWidth = FXSYS_wtoi(lpsz);
 | 
| -      for (; *lpsz != 0 && (*lpsz) <= '9' && (*lpsz) >= '0'; lpsz++)
 | 
| -        ;
 | 
| +      while (std::iswdigit(*lpsz))
 | 
| +        ++lpsz;
 | 
|      }
 | 
|      if (nWidth < 0 || nWidth > 128 * 1024) {
 | 
|        lpszFormat = L"Bad width";
 | 
| @@ -781,8 +783,8 @@ void CFX_WideString::FormatV(const FX_WCHAR* lpszFormat, va_list argList) {
 | 
|          lpsz++;
 | 
|        } else {
 | 
|          nPrecision = FXSYS_wtoi(lpsz);
 | 
| -        for (; *lpsz != 0 && (*lpsz) >= '0' && (*lpsz) <= '9'; lpsz++)
 | 
| -          ;
 | 
| +        while (std::iswdigit(*lpsz))
 | 
| +          ++lpsz;
 | 
|        }
 | 
|      }
 | 
|      if (nPrecision < 0 || nPrecision > 128 * 1024) {
 | 
| @@ -968,7 +970,7 @@ FX_FLOAT FX_wtof(const FX_WCHAR* str, int len) {
 | 
|      if (str[cc] == '.') {
 | 
|        break;
 | 
|      }
 | 
| -    integer = integer * 10 + str[cc] - '0';
 | 
| +    integer = integer * 10 + FXSYS_toDecimalDigitWide(str[cc]);
 | 
|      cc++;
 | 
|    }
 | 
|    FX_FLOAT fraction = 0;
 | 
| @@ -976,7 +978,7 @@ FX_FLOAT FX_wtof(const FX_WCHAR* str, int len) {
 | 
|      cc++;
 | 
|      FX_FLOAT scale = 0.1f;
 | 
|      while (cc < len) {
 | 
| -      fraction += scale * (str[cc] - '0');
 | 
| +      fraction += scale * FXSYS_toDecimalDigitWide(str[cc]);
 | 
|        scale *= 0.1f;
 | 
|        cc++;
 | 
|      }
 | 
| 
 |