Overview
Comment: | (/ω\) |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
99733128964bf059bb54e29c8e191160 |
User & Date: | 顽雨沉风 on 2024-01-23 05:43:08 |
Other Links: | manifest | tags |
Context
2024-01-23
| ||
05:46 | (/ω\) check-in: cfc70296e9 user: 顽雨沉风 tags: trunk | |
05:43 | (/ω\) check-in: 9973312896 user: 顽雨沉风 tags: trunk | |
05:42 | (/ω\) check-in: 97579aac1b user: 顽雨沉风 tags: trunk | |
Changes
Modified 残局文料/lib_lua/u8_to_a.lua from [61e6f5799a] to [8ed9e155fc].
1 | local ffi = require("ffi") | | | | | | | | | | | | | | | | | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 | local ffi = require("ffi") local d_4 = {} ffi.cdef([[ typedef unsigned int UINT; typedef unsigned long DWORD; typedef wchar_t WCHAR; typedef WCHAR* LPWSTR; typedef wchar_t* LPCWCH; typedef char CHAR; typedef CHAR* LPSTR; typedef const char* LPCCH; 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_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_4.CP_ACP, 0, input, #input, wstr, wlen) return wstr, wlen end 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_4.CP_ACP, 0, wstr, wlen or -1, str, len, nil, nil) return ffi.string(str, len) end 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 |