Index: 残局文料/lib_lua/u8_to_a.lua ================================================================== --- 残局文料/lib_lua/u8_to_a.lua +++ 残局文料/lib_lua/u8_to_a.lua @@ -1,7 +1,7 @@ local ffi = require("ffi") -local d_3 = {} +local d_4 = {} ffi.cdef([[ typedef unsigned int UINT; typedef unsigned long DWORD; typedef wchar_t WCHAR; typedef WCHAR* LPWSTR; @@ -12,27 +12,27 @@ typedef int BOOL; typedef BOOL* LPBOOL; int MultiByteToWideChar(UINT CodePage, DWORD dwFlags, LPCCH lpMultiByteStr, int cbMultiByte, LPWSTR lpWideCharStr, int cchWideChar); int WideCharToMultiByte(UINT CodePage, DWORD dwFlags, LPCWCH lpWideCharStr, int cchWideChar, LPSTR lpMultiByteStr, int cchMultiByte, LPCCH lpDefaultChar, LPBOOL pfUsedDefaultChar); ]]) -d_3.CP_ACP = 0 -d_3.CP_UTF8 = 65001 -function d_3.m2w(input, o1) - local wlen = ffi.C.MultiByteToWideChar(o1 or d_3.CP_ACP, 0, input, #input, nil, 0) +d_4.CP_ACP = 0 +d_4.CP_UTF8 = 65001 +function d_4.m2w(input, o1) + local wlen = ffi.C.MultiByteToWideChar(o1 or d_4.CP_ACP, 0, input, #input, nil, 0) local wstr = ffi.new("wchar_t[?]", wlen + 1) - ffi.C.MultiByteToWideChar(o1 or d_3.CP_ACP, 0, input, #input, wstr, wlen) + ffi.C.MultiByteToWideChar(o1 or d_4.CP_ACP, 0, input, #input, wstr, wlen) return wstr, wlen end -function d_3.w2m(wstr, wlen, o1) - local len = ffi.C.WideCharToMultiByte(o1 or d_3.CP_ACP, 0, wstr, wlen or -1, nil, 0, nil, nil) +function d_4.w2m(wstr, wlen, o1) + local len = ffi.C.WideCharToMultiByte(o1 or d_4.CP_ACP, 0, wstr, wlen or -1, nil, 0, nil, nil) local str = ffi.new("char[?]", len) - ffi.C.WideCharToMultiByte(o1 or d_3.CP_ACP, 0, wstr, wlen or -1, str, len, nil, nil) + ffi.C.WideCharToMultiByte(o1 or d_4.CP_ACP, 0, wstr, wlen or -1, str, len, nil, nil) return ffi.string(str, len) end -function d_3.u8_to_a(input) - return d_3.w2m(d_3.m2w(input, d_3.CP_UTF8)) - end -function d_3.a_to_u8(input) - local k1, k2 = d_3.m2w(input) - return d_3.w2m(k1, k2, d_3.CP_UTF8) - end -return d_3 +function d_4.u8_to_a(input) + return d_4.w2m(d_4.m2w(input, d_4.CP_UTF8)) + end +function d_4.a_to_u8(input) + local k1, k2 = d_4.m2w(input) + return d_4.w2m(k1, k2, d_4.CP_UTF8) + end +return d_4