Skip to content

Commit

Permalink
fix: detect encoding.
Browse files Browse the repository at this point in the history
  • Loading branch information
clown committed Feb 18, 2022
1 parent 06d6b3a commit 6c57735
Showing 1 changed file with 14 additions and 1 deletion.
15 changes: 14 additions & 1 deletion CPP/Common/UTFConvert.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -301,7 +301,20 @@ bool Convert_UTF8_Buf_To_Unicode(const char *src, size_t srcSize, UString &dest,
auto tmp = Cube::Encoding::Conversion::ascii_string(src, src + srcSize);
if (!tmp.empty())
{
auto cvt = Cube::Encoding::Conversion::ToUnicode(tmp, Cube::Encoding::Utf8);
auto code = Check_UTF8_Buf(src, srcSize, false) ?
Cube::Encoding::Utf8 :
Cube::Encoding::Conversion::Guess(tmp);
auto cvt = code != Cube::Encoding::Unknown ?
Cube::Encoding::Conversion::ToUnicode(tmp, code) :
Cube::Encoding::Conversion::Widen(tmp, CP_OEMCP);

if ((code == Cube::Encoding::Jis ||
code == Cube::Encoding::EucJp) &&
!Cube::Encoding::Validator::IsValidPath(cvt))
{
code = Cube::Encoding::ShiftJis;
cvt = Cube::Encoding::Conversion::ToUnicode(tmp, code);
}
dest = cvt.c_str();
}
return true;
Expand Down

0 comments on commit 6c57735

Please sign in to comment.