Overview
Comment: | 好 |
---|---|
Downloads: | Tarball | ZIP archive | SQL archive |
Timelines: | family | ancestors | descendants | both | trunk |
Files: | files | file ages | folders |
SHA3-256: |
d8252d8549344c9453a15c335cbe8d83 |
User & Date: | 顽雨沉风 on 2024-02-13 04:49:43 |
Other Links: | manifest | tags |
Context
2024-02-13
| ||
04:51 | 好 check-in: bcf096bd8f user: 顽雨沉风 tags: trunk | |
04:49 | 好 check-in: d8252d8549 user: 顽雨沉风 tags: trunk | |
04:49 | 好 check-in: 7f8375e5c1 user: 顽雨沉风 tags: trunk | |
Changes
Modified 残局文料/lua_lib/u8_to_a.lua from [f583b8167f] to [707a929003].
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 39 40 | local ffi = require("ffi") local s = {} 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); ]]) s.CP_ACP = 0 s.CP_UTF8 = 65001 --~ 算机_基统_窗群 function s.m2w(input, o1) local wlen = ffi.C.MultiByteToWideChar(o1 or s.CP_ACP, 0, input, #input, nil, 0) local wstr = ffi.new("wchar_t[?]", wlen + 1) ffi.C.MultiByteToWideChar(o1 or s.CP_ACP, 0, input, #input, wstr, wlen) return wstr, wlen end function s.w2m(wstr, wlen, o1) local len = ffi.C.WideCharToMultiByte(o1 or s.CP_ACP, 0, wstr, wlen or -1, nil, 0, nil, nil) local str = ffi.new("char[?]", len) ffi.C.WideCharToMultiByte(o1 or s.CP_ACP, 0, wstr, wlen or -1, str, len, nil, nil) return ffi.string(str, len) end --~ 通用大字集_八位 function s.u8_to_a(input) return s.w2m(s.m2w(input, s.CP_UTF8)) end function s.a_to_u8(input) local k1, k2 = s.m2w(input) return s.w2m(k1, k2, s.CP_UTF8) end return s |