VFP 愛用者社區 首頁 VFP 愛用者社區
本討論區為 Visual Foxpro 愛用者經驗交流的地方, 請多多利用"搜尋"的功能, 先查看看有無前例可循, 如果還有不懂的再發問. 部份主題有附加檔案, 須先註冊成為社區居民才可以下載.
 
 常見問題常見問題   搜尋搜尋   會員列表會員列表   會員群組會員群組   會員註冊會員註冊 
 個人資料個人資料   登入檢查您的私人訊息登入檢查您的私人訊息   登入登入

跪求 VFP6 BIG5轉UTF-8 用的函數 DLL 或其它方法

 
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區
上一篇主題 :: 下一篇主題  
發表人 內容
andybigbos



註冊時間: 2004-12-01
文章: 62
來自: 台中

第 1 樓

發表發表於: 星期一 十二月 10, 2018 3:45 pm    文章主題: 跪求 VFP6 BIG5轉UTF-8 用的函數 DLL 或其它方法 引言回覆

小弟要弄 QRCODE 但是 VFP6 為 BIG5碼,QRCODE 要求 utf-8 ,如可將big5 轉成 utf-8
回頂端
檢視會員個人資料 發送私人訊息
ckp6250



註冊時間: 2004-07-30
文章: 1545


第 2 樓

發表發表於: 星期一 十二月 10, 2018 4:57 pm    文章主題: 引言回覆

您要學會搜尋本站,上面有您想要的。
回頂端
檢視會員個人資料 發送私人訊息
spfrk



註冊時間: 2004-11-08
文章: 159


第 3 樓

發表發表於: 星期二 十二月 11, 2018 10:40 am    文章主題: 引言回覆

repl FMasNam with STRCONV(vdata,11) && UTF8 TO BIG5 11, BIG5 TO UTF8 9
回頂端
檢視會員個人資料 發送私人訊息
garfield
Site Admin


註冊時間: 2003-01-30
文章: 2097


第 4 樓

發表發表於: 星期二 十二月 11, 2018 10:42 am    文章主題: 引言回覆

vfp6 不像vfp9這麼方便, 你參考這篇看看行不行
http://blogs.lessthandot.com/index.php/datamgmt/datadesign/displaying-and-saving-unicode-data/

_________________
利用>>搜尋<<的功能會比問的還要快得到答案.
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
garfield
Site Admin


註冊時間: 2003-01-30
文章: 2097


第 5 樓

發表發表於: 星期二 十二月 11, 2018 11:35 am    文章主題: 引言回覆

*UTF-8的CodePage = 65001
mutf8 = udf_CPConverter(950,65001, '中文轉成utf-8, 還是有問題,應該是長度出了點問題' )
*在vfp9執行這一段來debug
? strconv( mutf8 , 11 )

FUNCTION udf_CPConverter()
Lparameters nCurrentCodePage, nNewCodePage, cString

Declare Integer IsValidCodePage in WIN32API ;
integer nCodePage

Declare Integer MultiByteToWideChar in WIN32API ;
integer CodePage,;
integer Flags,;
string MultyByteStr,;
integer MultiByteStrLen,;
string @ WideCharStr,;
integer WideCharStrLen


Declare Integer WideCharToMultiByte in WIN32API ;
integer CodePage,;
integer Flags,;
string MultyByteStr,;
integer MultiByteStrLen,;
string @ WideCharStr,;
integer WideCharStrLen,;
integer ,;
integer


If IsValidCodePage(nCurrentCodePage) = 0
ERROR 1914
RETURN ""
EndIf

If IsValidCodePage(nNewCodePage) = 0
ERROR 1914
RETURN ""
EndIf

Local WideCharBuf, MultiByteBuf
WideCharBuf = REPLICATE(CHR(0),LEN(cString)*2)
MultiByteBuf = REPLICATE(CHR(0),LEN(cString))

MultiByteToWideChar;
(nCurrentCodePage;
,0;
,cString;
,Len(cString);
,@WideCharBuf;
,Len(WideCharBuf))


WideCharToMultiByte;
(nNewCodePage;
,0;
,WideCharBuf;
,Len(WideCharBuf);
,@MultiByteBuf;
,Len(MultiByteBuf);
,0,0)

Return MultiByteBuf

*!* Code Page Identifiers for ISO-8859 are:

*!* 28591 ISO 8859-1 Latin I
*!* 28592 ISO 8859-2 Central Europe
*!* 28593 ISO 8859-3 Latin 3
*!* 28594 ISO 8859-4 Baltic
*!* 28595 ISO 8859-5 Cyrillic
*!* 28596 ISO 8859-6 Arabic
*!* 28597 ISO 8859-7 Greek
*!* 28598 ISO 8859-8 Hebrew
*!* 28599 ISO 8859-9 Latin 5
*!* 28605 ISO 8859-15 Latin 9

_________________
利用>>搜尋<<的功能會比問的還要快得到答案.
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
yctsai



註冊時間: 2003-04-11
文章: 171


第 6 樓

發表發表於: 星期二 十二月 11, 2018 8:27 pm    文章主題: 引言回覆

呼叫記事本,自動存成UTF8格式即可

這樣簡單 速度快,使用者也沒感覺,且穩定
回頂端
檢視會員個人資料 發送私人訊息
marvin



註冊時間: 2004-06-01
文章: 314


第 7 樓

發表發表於: 星期二 十二月 11, 2018 11:50 pm    文章主題: 引言回覆

> 呼叫記事本,自動存成UTF8格式即可


這個真沒想過, 但操作的程式可以提示一下嗎 ?
回頂端
檢視會員個人資料 發送私人訊息
garfield
Site Admin


註冊時間: 2003-01-30
文章: 2097


第 8 樓

發表發表於: 星期三 十二月 12, 2018 4:41 pm    文章主題: 引言回覆

DECLARE Sleep IN "Kernel32" LONG dwMilliseconds
DECLARE LONG FindWindowEx IN User32 LONG hWndParent, LONG hWndChild, STRING cClassName, STRING cCaptionText
DECLARE LONG FindWindow IN User32 STRING cClassName, STRING cCaptionText

DECLARE LONG SendMessage IN User32 LONG, LONG, LONG, STRING
#DEFINE WM_SETTEXT 12
#DEFINE WM_PASTE 0x302


cTextFile = "d:\downloads\test.txt"

oWS = CreateObject( "WScript.Shell" )

cApp = [notepad "] + cTextFile + ["]
oApp = oWS.Exec( cApp )

Sleep(3000)

hWnd_Notepad = FindWindow( "Notepad", JUSTFNAME(cTextFile)+" - 記事本" )
hWnd_Edit = FindWindowEx( hWnd_Notepad, 0, "Edit", "" )

? "hWnd_Notepad", hWnd_Notepad
? "hwnd_Edit", hwnd_Edit

*WAIT

strWindowText = cTextFile+" 的檔案必需要事先存成 utf-8編碼, 這裡貼到notepad的文字會自動轉成utf-8 at "+time()

= SendMessage( hWnd_Edit, WM_SETTEXT, len(strWindowText), strWindowText )

*!* = SendMessage( hWnd_Edit, WM_PASTE, 0, Null )

*WAIT "接下來要存檔的方式是按下 Ctrl + s "
Declare keybd_event IN Win32API SHORT bVk, SHORT bScan, INTEGER dwFlags, INTEGER deExtraInfo
#define VK_CONTROL 0xA2
*左方Control
#define KEYEVENTF_KEYDOWN 0x01
#define KEYEVENTF_KEYUP 0x02

keybd_event(VK_CONTROL,0,KEYEVENTF_KEYDOWN,0)
keybd_event(ASC("S"),0,KEYEVENTF_KEYDOWN,0)
INKEY(0.1)
keybd_event(ASC("S"),0,KEYEVENTF_KEYUP,0)
keybd_event(VK_CONTROL,0,KEYEVENTF_KEYUP,0)


SENDMessage(hWnd_Notepad,0X10,1,"關掉notepad")

? "證明檔案中文已轉成 utf-8, 將讀出的文字由 utf-8 轉成 big5"
? STRCONV(FILETOSTR( cTextFile ),11)

_________________
利用>>搜尋<<的功能會比問的還要快得到答案.


garfield 在 星期四 十二月 13, 2018 7:51 pm 作了第 2 次修改
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
yctsai



註冊時間: 2003-04-11
文章: 171


第 9 樓

發表發表於: 星期三 十二月 12, 2018 7:21 pm    文章主題: 引言回覆

1.我錯了,我承認老了

呼叫記事本,自動存成UTF8格式即可,是我研究過的方法, 最後要自動存成UTF8格式<---這個找不到指令

2.我是用convertZ

select 檔案
copy to 某檔 type sdf

sss='c:\convertz.exe /i:big5 /o:utf8 '+某檔
run /n &sss

這樣簡單 速度快,使用者也沒感覺,且穩定
回頂端
檢視會員個人資料 發送私人訊息
nelsonchuang



註冊時間: 2003-09-04
文章: 563
來自: 臺灣

第 10 樓

發表發表於: 星期四 十二月 13, 2018 10:54 am    文章主題: 引言回覆

https://www.foxite.com/archives/vfp-unicode-0000233480.htm#
_________________
大家好,請多指教
回頂端
檢視會員個人資料 發送私人訊息
garfield
Site Admin


註冊時間: 2003-01-30
文章: 2097


第 11 樓

發表發表於: 星期四 十二月 13, 2018 7:52 pm    文章主題: 引言回覆

剛才補齊8樓轉碼utf-8的方法, 看似可行
_________________
利用>>搜尋<<的功能會比問的還要快得到答案.
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
syntech



註冊時間: 2003-05-16
文章: 3894
來自: Taipei,Taiwan

第 12 樓

發表發表於: 星期五 十二月 14, 2018 3:37 pm    文章主題: 引言回覆

4F &5F 的方法我在作電子發票時試過了(印象中也是在本站找的)
字串長度問題後來程式上會很麻煩,
所以最後還是用 VFP9 作所有會用到UTF8轉換的程式

_________________
如果公司有下列困擾:
1. 找不到便宜,快速,簡易的 生產排程軟體
2. 不知道如何快速排定 採購計劃
3. 成本抓不準,自己算比軟體算有用
4. 想學習系統規劃,想找系統架構的顧問

請聯絡我們,也許我們幫得上忙
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件 AIM Address
andywilliams



註冊時間: 2004-10-23
文章: 111


第 13 樓

發表發表於: 星期二 十月 29, 2019 12:42 am    文章主題: 引言回覆

WshShell = CreateObject("WScript.Shell")
PSrun = "PowerShell Get-Content big5.txt | Set-Content -Encoding utf8 utf8.txt"
WshShell.Run( PSrun,0,.T.)
回頂端
檢視會員個人資料 發送私人訊息 發送電子郵件
從之前的文章開始顯示:   
發表新主題   回覆主題    VFP 愛用者社區 首頁 -> VFP 討論區 所有的時間均為 台北時間 (GMT + 8 小時)
1頁(共1頁)

 
前往:  
無法 在這個版面發表文章
無法 在這個版面回覆文章
無法 在這個版面編輯文章
無法 在這個版面刪除文章
無法 在這個版面進行投票
無法 在這個版面附加檔案
無法 在這個版面下載檔案


Powered by phpBB © 2001, 2005 phpBB Group
正體中文語系由 phpbb-tw 維護製作