|
VFP ·R¥ÎªÌªÀ°Ï ¥»°Q½×°Ï¬° Visual Foxpro ·R¥ÎªÌ¸gÅç¥æ¬yªº¦a¤è, ½Ð¦h¦h§Q¥Î"·j´M"ªº¥\¯à, ¥ý¬d¬Ý¬Ý¦³µL«e¨Ò¥i´`, ¦pªGÁÙ¦³¤£À´ªº¦Aµo°Ý. ³¡¥÷¥DÃD¦³ªþ¥[ÀÉ®×, ¶·¥ýµù¥U¦¨¬°ªÀ°Ï©~¥Á¤~¥i¥H¤U¸ü.
|
¤W¤@½g¥DÃD :: ¤U¤@½g¥DÃD |
µoªí¤H |
¤º®e |
foxy
µù¥U®É¶¡: 2007-08-16 ¤å³¹: 245 ¨Ó¦Û: ®õ°ê
²Ä 1 ¼Ó
|
µoªí©ó: ¬P´Á¤@ ¤K¤ë 16, 2021 9:45 pm ¤å³¹¥DÃD: ´M¨D¤¤¤å¤å¦rªº unicode ©M utf-8 ¹ï·Óªí |
|
|
¦U¦ì¤j«L¦n,
¤p§Ì»Ý¥Î¨ì¤¤¤å¤å¦rªº unicode ©M utf-8 ¹ï·Óªí, ¤£ª¾þ¸Ì¥i¦³¤U¸ü, ½Ð¤£§[«üÂI.
¨Ò¦p, °ê ³oÓ¦rªºunicode ¥N½X¬O570B, utf-8 ¥N½X¬O e59c8b.
¦bºô¶ https://www.shabsin.com/~rshabsin/chineseutf8chars.html#first ¦³¤F utf-8 ªº¹ï·Óªí.
https://zh.m.wikisource.org/zh-hant/%E5%B8%B8%E7%94%A8%E5%9C%8B%E5%AD%97%E6%A8%99%E6%BA%96%E5%AD%97%E9%AB%94%E8%A1%A8 ¦³ unicode ¹ï·Óªí.
¦pªG¨S¦³3¦X1ªº¹ï·Óªí, ¤p§Ì´N³q¹L VFP ¨Ó§â³o¤Wzªº¨âÓ¹ï·Óªí¦X2¬°¤@.
<°ÝÃD¤w¸g¸Ñ¨M>
¤p§Ìµ²¦Xºô¤W¸ê®Æ, °µ¥X¤Funicode ¥N½XÂà´«¬° utf-8 ¥N½Xªº¥\¯à, ¨Ñ¦U¦ì¤j«L°Ñ¦Ò.
WAIT WINDOW unicode2utf8('U+570B') && return '0xE5 0x9C 0x8B'
**
FUNCTION hex2bin
PARAMETERS cHexString
STORE '' TO cBinString, cBinString1
STORE Len(cHexString) TO nStrLen
FOR zzz = 1 TO nStrLen
cBinString = cBinString + ;
Padl(dec2basx(Int(Val('0x' + Substr(cHexString, zzz, 1))), 2), 4, '0')
NEXT
RETURN cBinString
*: EOF hex2bin
FUNCTION dec2basx
PARAMETERS nTempNum, nNewBase
STORE 0 TO nWorkVal,;
remainder,;
dividend,;
nextnum,;
digit
nWorkVal = nTempNum
ret_str = ''
DO WHILE .T.
digit = MOD(nWorkVal, nNewBase)
dividend = nWorkVal / nNewBase
nWorkVal = INT(dividend)
DO CASE
CASE digit = 10
ret_str = 'a' + ret_str
CASE digit = 11
ret_str = 'b' + ret_str
CASE digit = 12
ret_str = 'c' + ret_str
CASE digit = 13
ret_str = 'd' + ret_str
CASE digit = 14
ret_str = 'e' + ret_str
CASE digit = 15
ret_str = 'f' + ret_str
OTHERWISE
ret_str = LTRIM(STR(digit)) + ret_str
ENDCASE
IF nWorkVal = 0
EXIT
ENDIF ( nWorkVal = 0 )
ENDDO ( .T. )
RETURN ret_str
*: eof dec2basx
FUNCTION bin2hex
PARAMETERS cBinString
STORE '' TO cHexString
STORE Len(cBinString) TO nStrLen
FOR zzz = 1 TO nStrLen STEP 4
cHexString = cHexString + ;
dec2basx(bin2dec(SUBSTR(cBinString, zzz, 4)), 16)
NEXT
RETURN cHexString
*: EOF bin2hex
FUNCTION bin2dec
PARAMETERS pbinnum
PRIVATE retval, bindex
STORE 0 TO retval
pbinnum = ALLTRIM(pbinnum)
STORE LEN(pbinnum) TO nDigits
FOR bindex = 0 TO nDigits
IF SUBSTR(pbinnum, nDigits - bindex, 1) = '1'
retval = retval + 2^bindex
ENDIF
NEXT
RETURN INT(retval)
*: eof bin2dec
PROCEDURE unicode2utf8
LPARAMETERS lcUni && hex
m.lcUni=UPPER(ALLTRIM(m.lcUni))
m.lcPrefix='U+'
IF !LEFT(m.lcUni,2)=m.lcPrefix
m.lcUni=m.lcPrefix+m.lcUni
endif
m.lcBin=hex2bin(SUBSTR(m.lcUni,3))
m.lc10=ALLTRIM('10')
DO case
CASE m.lcUni>='U+0000' AND m.lcUni<='U+007F'
m.lcPrefix='0'
m.lnBytes=1
m.lcRs=m.lcPrefix+right(m.lcBin,7)
CASE m.lcUni>='U+0080' AND m.lcUni<='U+07FF'
m.lcPrefix='110'
m.lnBytes=2
m.lcBin=right(m.lcBin,11)
m.lcFirst5=LEFT(m.lcBin,5)
m.lcR1=m.lcPrefix+m.lcFirst5
m.lcNext6=right(m.lcBin,6)
m.lcR2=m.lc10+ m.lcNext6
m.lcRs=m.lcR1+m.lcR2
CASE m.lcUni>='U+0800' AND m.lcUni<='U+FFFF'
m.lcPrefix='1110'
m.lnBytes=3
m.lcBin=right(m.lcBin,16)
m.lcFirst4=LEFT(m.lcBin,4)
m.lcR1=m.lcPrefix+m.lcFirst4
m.lcNext6=SUBSTR(m.lcBin,5,6)
m.lcR2=m.lc10+ m.lcNext6
m.lcLast6=right(m.lcBin,6)
m.lcR3=m.lc10+m.lcLast6
m.lcRs=m.lcR1+m.lcR2+m.lcR3
CASE m.lcUni>='U+10000' AND m.lcUni<='U+10FFFF'
m.lcPrefix='11110'
m.lnBytes=4
m.lcBin=right(m.lcBin,21)
m.lcFirst3=LEFT(m.lcBin,3)
m.lcR1=m.lcPrefix+m.lcFirst3
m.lcNext6=SUBSTR(m.lcBin,4,6)
m.lcR2=m.lc10+ m.lcNext6
m.lc2Next6=SUBSTR(m.lcBin,10,6)
m.lcR3=m.lc10+ m.lc2Next6
m.lcLast6=right(m.lcBin,6)
m.lcR4=m.lc10+m.lcLast6
m.lcRs=m.lcR1+m.lcR2+m.lcR3+m.lcR4
OTHERWISE
m.lcRs=''
ENDCASE
m.lcutf8=UPPER(bin2hex(m.lcRs))
m.lcx=ALLTRIM('0x')
m.lnlen=LEN(m.lcutf8)
m.lcRes=''
FOR m.lnNow=1 TO m.lnlen/2 && add 0x before each 2 digits
m.lcNow=m.lcx+SUBSTR(m.lcutf8,(m.lnNow-1)*2+1,2)
m.lcRes=m.lcRes+SPACE(1)+m.lcNow
endfor
RETURN ALLTRIM(m.lcRes)
ENDPROC
*: eof unicode2utf8
¨ä¤¤³Ì«á¤@Ócase ¦³°ÝÃD, ¥i¯à¬O bin2hex() ¤£¯à³B²z¹L¤jªº unicode ¥N½X, ©¯¦n¤¤¤å¦rªºunicode ¥N½X¤£·|¸¨¦b³oÓcase
ÁÂÁ±z, ¦w±d¥¦w _________________ ¶i¾P¦s+¥Í²£»s³y+·|p+û¤uÁ~¸ê+CRM+POS¹s°â+À\ÆU¤â¾÷app+¹q°Ó¤â¾÷app+¹q°Óºô¯¸,ª«¬y¨t²Î. ¥¿/²Å餤¤å,^,¤é,®õ,½q¨l¤å. MS SQL Server + «e¥x VFP + PHP ºô¯¸ + Flutter ¤â¾÷ App, ³£¦@¨É MS SQL Serverªº¸ê®Æ. www.foxacc.com LINE: mike-lm |
|
¦^³»ºÝ |
|
|
css
µù¥U®É¶¡: 2004-12-31 ¤å³¹: 32
²Ä 2 ¼Ó
|
µoªí©ó: ¬P´Á¤G ¤K¤ë 17, 2021 5:00 pm ¤å³¹¥DÃD: |
|
|
¤@¤f®ð¼g¥X³o»ò¦h¥N½X¡K¡K±z½T©w¡A±z¬O»{¯uªº?
cUTF8 = strconv(cUnicode, 10)
cUnicode = strconv(cUTF8, 12) |
|
¦^³»ºÝ |
|
|
foxy
µù¥U®É¶¡: 2007-08-16 ¤å³¹: 245 ¨Ó¦Û: ®õ°ê
²Ä 3 ¼Ó
|
µoªí©ó: ¬P´Á¤T ¤K¤ë 18, 2021 12:09 am ¤å³¹¥DÃD: |
|
|
css ¼g¨ì: | ¤@¤f®ð¼g¥X³o»ò¦h¥N½X¡K¡K±z½T©w¡A±z¬O»{¯uªº?
cUTF8 = strconv(cUnicode, 10)
cUnicode = strconv(cUTF8, 12) |
½M»{¯un¤ñ¤£»{¯u¦n§a, ¨S¦³¥\³Ò¥u¯à¾aW³Ò
§Aªº cUTF8 = strconv(cUnicode, 10) ¸Ó«ç¼ËÅé²{§Úªºn¨D©O?
cUTF8 = strconv('570B', 10) ¤£¯à±o¥X e59c8b
cUTF8 = strconv('U+570B', 10) ¤]¤£¯à±o¥X e59c8b.
§A©Ò»¡ªºcUnicode ¬O¬Æ»ò¼Ëªº¦r²Å©O?
·PÁ _________________ ¶i¾P¦s+¥Í²£»s³y+·|p+û¤uÁ~¸ê+CRM+POS¹s°â+À\ÆU¤â¾÷app+¹q°Ó¤â¾÷app+¹q°Óºô¯¸,ª«¬y¨t²Î. ¥¿/²Å餤¤å,^,¤é,®õ,½q¨l¤å. MS SQL Server + «e¥x VFP + PHP ºô¯¸ + Flutter ¤â¾÷ App, ³£¦@¨É MS SQL Serverªº¸ê®Æ. www.foxacc.com LINE: mike-lm |
|
¦^³»ºÝ |
|
|
ckp6250
µù¥U®É¶¡: 2004-07-30 ¤å³¹: 1645
²Ä 4 ¼Ó
|
µoªí©ó: ¬P´Á¤T ¤K¤ë 18, 2021 8:56 am ¤å³¹¥DÃD: |
|
|
¦n©_½Ð±Ð¡A±z³oÓ¥\¯à¡A¬O¹B¥Î¦b¤°»ò¦a¤è¡H |
|
¦^³»ºÝ |
|
|
css
µù¥U®É¶¡: 2004-12-31 ¤å³¹: 32
²Ä 5 ¼Ó
|
µoªí©ó: ¬P´Á¤T ¤K¤ë 18, 2021 9:01 am ¤å³¹¥DÃD: |
|
|
foxy ¼g¨ì: | css ¼g¨ì: | ¤@¤fÉa写¥X这¤\¦h¥N码...... ±zÚÌ©w¡A±z¬O认¯uªº¡H cUTF8 = strconv¡]cUnicode¡A 10¡^ cUnicode = strconv¡]cUTF8¡A 12¡^ | ½M认¯un¤ñ¤£认¯u¦n§a¡A 没¦³¥\劳¥u¯à¾aW劳 §Aªº cUTF8 = strconv¡]cUnicode¡A 10¡^ 该«çý©Ê^现§Úªºn¨D©O¡H cUTF8 = strconv¡]'570B'¡A 10¡^ ¤£¯à±o¥X e59c8b cUTF8 = strconv¡]'U+570B'¡A 10¡^ ¤]¤£¯à±o¥X e59c8b. §A©Ò说ªºcUnicode ¬O¬Æ¤\ý©ªº¦r²Å©O¡H ·P谢 |
§A¦ü¥G¤£¤Ó²z¸ÑUnicode¡BUTF-8©MANSIªº¤º¦bÃö«Y¡C
¦Ó¥B§Ú¤]¤£ª¾¹D¡A§A®³Unicode©MUTF-8ªº¤G¶i¨î½s½X¨Ó§@¤°»ò¡C
³oªF¦è¤T¨¥¨â»y¹ê¦b¸ÑÄÀ¤£²M·¡¡C
¶â¡K¡K³o¼ËÁ|Ó¨Ò¤l§a¡G
cAnsi = "°ê"
cUTF8 = strconv(strconv(cAnsi, 5), 10)
cUnicode = strconv(strconv(cAnsi, 9), 12)
©ÎªÌ¡G
cUnicode = strconv(cAnsi, 5)
cUTF8 = strconv(cAnsi, 9)
cUTF8 = strconv(cUnicode, 10)
cUnicode = strconv(cUTF8, 12)
¦Ü©óÂà´«¥XUnicode©MUTF-8½s½X¤§«á¡A¦p¦óÅã¥Ü¬°570B©Îe59c8b¡A¨º¯Âºé¬OTRANSFORMªº问题¡A¹ê¦bµL¥²n¼g¤@¤j°ï¬Ý±o¤H·wÀY·w¸£ªº¥N½X¡C |
|
¦^³»ºÝ |
|
|
foxy
µù¥U®É¶¡: 2007-08-16 ¤å³¹: 245 ¨Ó¦Û: ®õ°ê
²Ä 6 ¼Ó
|
µoªí©ó: ¬P´Á¤T ¤K¤ë 18, 2021 5:09 pm ¤å³¹¥DÃD: |
|
|
css ¼g¨ì: | foxy ¼g¨ì: | css ¼g¨ì: | ¤@¤fÉa写¥X这¤\¦h¥N码...... ±zÚÌ©w¡A±z¬O认¯uªº¡H cUTF8 = strconv¡]cUnicode¡A 10¡^ cUnicode = strconv¡]cUTF8¡A 12¡^ | ½M认¯un¤ñ¤£认¯u¦n§a¡A 没¦³¥\劳¥u¯à¾aW劳 §Aªº cUTF8 = strconv¡]cUnicode¡A 10¡^ 该«çý©Ê^现§Úªºn¨D©O¡H cUTF8 = strconv¡]'570B'¡A 10¡^ ¤£¯à±o¥X e59c8b cUTF8 = strconv¡]'U+570B'¡A 10¡^ ¤]¤£¯à±o¥X e59c8b. §A©Ò说ªºcUnicode ¬O¬Æ¤\ý©ªº¦r²Å©O¡H ·P谢 |
§A¦ü¥G¤£¤Ó²z¸ÑUnicode¡BUTF-8©MANSIªº¤º¦bÃö«Y¡C
¦Ó¥B§Ú¤]¤£ª¾¹D¡A§A®³Unicode©MUTF-8ªº¤G¶i¨î½s½X¨Ó§@¤°»ò¡C
³oªF¦è¤T¨¥¨â»y¹ê¦b¸ÑÄÀ¤£²M·¡¡C
¶â¡K¡K³o¼ËÁ|Ó¨Ò¤l§a¡G
cAnsi = "°ê"
cUTF8 = strconv(strconv(cAnsi, 5), 10)
cUnicode = strconv(strconv(cAnsi, 9), 12)
©ÎªÌ¡G
cUnicode = strconv(cAnsi, 5)
cUTF8 = strconv(cAnsi, 9)
cUTF8 = strconv(cUnicode, 10)
cUnicode = strconv(cUTF8, 12)
¦Ü©óÂà´«¥XUnicode©MUTF-8½s½X¤§«á¡A¦p¦óÅã¥Ü¬°570B©Îe59c8b¡A¨º¯Âºé¬OTRANSFORMªº问题¡A¹ê¦bµL¥²n¼g¤@¤j°ï¬Ý±o¤H·wÀY·w¸£ªº¥N½X¡C |
ÁÂÁ§Aªº«üÂI.
¤p§Ì¬On¨t²Î¨Ï¥Î google translate ¨Ó§â·|p¶Ç²¼ªº»¡©úºKn³¡¤À¦b¤¤¤å®õ¤å¤§¶¡Â½Ä¶. §â¥Î¤á¿é¤Jªº¤¤¤åµü²Õ¥ýÂà´«¬° utf ¥N½X(ÁÙ¬OÀ³¸Ó¬O¨ä¥L¦WºÙ? ¦ý¬O³oºØ¥N½X¬Oºô¶¯àÀ´ªº), ¨Ò¦p %E0%B8%AA%E0%B8%A7%E0%B8%B1%E0%B8%AA%E0%B8%94%E0%B8%B5%E0%B9%80%E0%B8%94%E0%B9%87%E0%B8%81%20?, ¦pªG¤@Ó¤¤¤å¦rªºutf ¥N½X¬O E0B8AA, »Ýn¥Î%¤À³Î¨C¨âÓ¦r¥À/¼Æ¦r, ¤]´N¬O %E0%B8%AA, ªÅ®æn¥Î %20, ¤~¯à¤W¶Çµ¹ google. ©Ò¥H¥²¶·¦³¤¤¤å¦r©Mutf¥N½Xªº¹ï·Óªí¤~¦æ. google ¶Ç¨ÓªºÂ½Ä¶µ²ªG¬OÃþ¦üunicode ªº¦r¦ê, ¨Ò¦p \u570B\u570B\u570B, ±o¨ì³oÓ¦r¦ê, »Ýn±q¤¤¤å¦r©Municode ¹ï·Óªí¨Ó§ä¨ì¹ïÀ³ªº¤¤¤å¦r, ´N¬O "°ê°ê°ê", ¦A§â±o¨ìªºµ²ªGÅã¥Üµ¹¥Î¤á,´N¬O¤¤¤åªºÂ½Ä¶.
®õ¤å¤]¬O¤@¼Ë. ¦]¬°¤¤¤å©M®õ¤å¤£¯àÝ®e©ó VFP, ©Ò¥H»Ýn³oÓÂà´«¹Lµ{.²{¦b¤w¸g¯à¥Î¤F.
¤£¹L¸ò§A©Ò»¡, §Ú½T¹ê¹ï unicode/ansi/utf-8 ¤£¬O«ÜÀ´, ³Ì¦n½Ð§A«üÂI¤@¤G.
cAnsi = "°ê"
cUTF8 = strconv(strconv(cAnsi, 5), 10) && ±o¨ì¤F¨âӰݸ¹: ??
cUnicode = strconv(strconv(cAnsi, 9), 12) && ±o¨ì¤F¤@Ó¦r¥À: W («e¦³ªÅ®æ)
©Ò¥H, §ÚÁÙ¬O¤£¯à ¨Ï¥Î³o¨âÓ¤½¦¡±o¥X 570B ©Î e59c8b.
ÁÂÁÂ |
|
¦^³»ºÝ |
|
|
css
µù¥U®É¶¡: 2004-12-31 ¤å³¹: 32
²Ä 7 ¼Ó
|
µoªí©ó: ¬P´Á¤T ¤K¤ë 18, 2021 10:47 pm ¤å³¹¥DÃD: |
|
|
¬Ý¨ì§A¤@¥»¥¿¸g¦a»¡¡G
¡u±o¨ì¤F¨âӰݸ¹: ??¡v
¡u±o¨ì¤F¤@Ó¦r¥À: W («e¦³ªÅ®æ)¡v
»¡¦Ñ¹ê¸Ü¡A§Ú¦³¨ÇµL»y¡C
¦]¹ê¦b¤£ª¾¦p¦ó¸ò§A¸ÑÄÀ²M·¡VFP»PUnicode/UTF-8ªº·R«ë±¡¤³¡I
¨ÆÃö¡A³oÓ·R±¡¬G¨Æ½T¹ê¬O¤ñ¡m²·R¡n©Î¡m²z´¼»P±¡·P¡nn½ÆÂø¦n¦h¦n¦h¿¡C
¨þ¨þ¡K¡K¦n§a¡A§Ú©ñ±ó¡C |
|
¦^³»ºÝ |
|
|
css
µù¥U®É¶¡: 2004-12-31 ¤å³¹: 32
²Ä 8 ¼Ó
|
µoªí©ó: ¬P´Á¤T ¤K¤ë 18, 2021 11:17 pm ¤å³¹¥DÃD: |
|
|
ºâ¤F¡A¤£³r§Aª±°Õ¡C
«¥°µ¤H¤£¯à¤£«p¹D¡C
*==============*
cAnsi = "§An½Ð¦Y¶º¬O¶Ü"
cUnicode = strconv(cAnsi, 5)
cUTF8 = strconv(cAnsi, 9)
c2Unicode = strconv(cUTF8, 12)
c2UTF8 = strconv(cUnicode, 10)
? c2Unicode == cUnicode
? c2UTF8 == cUTF8
*==============*
cUnicodeResult = strconv(cUnicode, 15)
cUtf8Result = strconv(cUTF8, 15)
*==============* |
|
¦^³»ºÝ |
|
|
syntech
µù¥U®É¶¡: 2003-05-16 ¤å³¹: 4225 ¨Ó¦Û: Taipei,Taiwan
²Ä 9 ¼Ó
|
µoªí©ó: ¬P´Á¥| ¤K¤ë 19, 2021 10:23 am ¤å³¹¥DÃD: |
|
|
¬Q¤Ñ¬Ý¨ì¤]ı±o¶i¤J»~°Ï¤F.
(©³¤U¾Ì¦L¶H¼gªº,¦n´X¦~«e°µ Ác¤¤<=>¶V¤å ½Ķ®É§Ëªº,¥i¯àþ¸Ì¿òº|¤F)
³oÓ°ÝÃDn¥Î VFP9 ¤ñ¸û¦n¸Ñ¨M,
¦]¬°¥i¥H¥ý¥Î
¥N½X: |
=SYS(987,.T.)
=SYS(3101,65001)
|
¥ý§âÀô¹Ò°µ¦¨ UTF-8 ,
µM«á¸ò¤W±®t¤£¦h,
¦pªG¦b VFP ª«¥ó³B²z:
{ DBCS ¦r¦ê } => { UTF-8 ¦r¦ê} => { ½Ķ«á UTF-8 ¦r¦ê} => { DBCS ¦r¦ê }
¦pªG¬O¦b FM2.0 TEXTBOX,
{ UNICODE ¦r¦ê (UCS-2/UTF-16) } => { UTF-8 ¦r¦ê} => { ½Ķ«á UTF-8 ¦r¦ê} => {½Ķ«á UNICODE (UCS-2/UTF-16) ¦r¦ê }
¦pªG¬O³o¼ËªºªF¦è"%E0%B8%AA%E0%B8%A7%E0%B8%B1%E0%B8%AA%E0%B8%94%E0%B8%B5%E0%B9%80%E0%B8%94%E0%B9%87%E0%B8%81%20?".
§A»Ýnªº¬O URLENCODE/URLDECODE . _________________ ¦pªG¤½¥q¦³¤U¦C§xÂZ:
1. §ä¤£¨ì«K©y,§Ö³t,²©öªº ¥Í²£±Æµ{³nÅé
2. ¤£ª¾¹D¦p¦ó§Ö³t±Æ©w ±ÄÁÊp¹º
3. ¦¨¥»§ì¤£·Ç,¦Û¤vºâ¤ñ³nÅéºâ¦³¥Î
4. ·Q¾Ç²ß¨t²Î³W¹º,·Q§ä¨t²Î¬[ºcªºÅU°Ý
½ÐÁpµ¸§ÚÌ,¤]³\§ÚÌÀ°±o¤W¦£ |
|
¦^³»ºÝ |
|
|
syntech
µù¥U®É¶¡: 2003-05-16 ¤å³¹: 4225 ¨Ó¦Û: Taipei,Taiwan
²Ä 10 ¼Ó
|
µoªí©ó: ¬P´Á¥| ¤K¤ë 19, 2021 10:33 am ¤å³¹¥DÃD: |
|
|
{ UTF-8 ¦r¦ê} => {URLENCODE ¦r¦ê(¥Î³oÓ¶K¦bºô§}°Ñ¼Æ¤W)} => ®³¥h½Ķ => { ºô¶¤º®e¬O UTF-8 ¦r¦ê}
URLENCODE/URLDECODE
¥N½X: |
*-----------------------------------
FUNCTION int2hex (num)
DECLARE INTEGER wnsprintf IN Shlwapi;
STRING @lpOut, INTEGER cchLimitIn,;
STRING pszFmt, INTEGER
LOCAL lnResult, lcResult
lcResult = SPACE(20)
lnResult = wnsprintf(@lcResult, 20, "%x", num)
RETURN Left(lcResult, lnResult)
Function URLdecode
PARAMETER pcInStr
* ' unencode EVERY %XX
* ' (keep track of current position so you don't unencode
* ' a percent that just came out of an URLencoded char
LOCAL I, tStr, tChr, tOut
tStr = pcInStr
tOut = ""
tStr = StrTran(tStr, "+", " ")
I = 1
do While I <= Len(tStr)
If (SubStr(tStr, I, 1) = "%") ;
And SubStr(tStr, I + 1, 1) $ "0123456789ABCDEF" ;
And SubStr(tStr, I + 2, 1) $ "0123456789ABCDEF"
tChr = (( At( SubStr(tStr, I + 1, 1), "0123456789ABCDEF" )-1) * 16 ) ;
+ (( At( SubStr(tStr, I + 2, 1), "0123456789ABCDEF" )-1) )
I = I + 2
*03/18/03 Zero's are now allowed.
if between(tChr,0,255) && 03/18/03
* if tChr > 0 and tChr < 255
tOut = tOut + chr( tChr )
endif
else
tOut = tOut + SubStr(tStr, I, 1)
EndIf
I = I + 1
EndDo
RETURN tOut
**********************************************************
Function URLencode
PARAMETER pcInStr
* ' encode Percent signs
* ' Double Quotes
* ' CarriageReturn / LineFeeds
LOCAL lcOut, lnI
lcOut = ''
for lnI = 1 to len(pcInStr)
lcCh = Substr(pcInStr,lnI,1)
if not between( lcCh, chr(33), chr(126) ) ;
or inlist(lcCh,[+],[%],["],[,],['],[`],[=],[ ],[&])
lcCh = '%' + PADL( int2Hex( asc(lcCh) ), 2, '0' )
endif
lcOut = lcOut + lcCh
endfor
*!* lcOut = pcInStr
*!* lcOut = StrTran(lcOut, "+", "%2B")
*!* lcOut = StrTran(lcOut, "%", "%25")
*!* lcOut = StrTran(lcOut, '"', "%22")
*!* lcOut = StrTran(lcOut, ",", "%2C")
*!* lcOut = StrTran(lcOut, Chr(13) + Chr(10), "%0D%0A" )
*!* lcOut = StrTran(lcOut, Chr(13), "%0D")
*!* lcOut = StrTran(lcOut, Chr(13), "%0A")
RETURN lcOut
|
_________________ ¦pªG¤½¥q¦³¤U¦C§xÂZ:
1. §ä¤£¨ì«K©y,§Ö³t,²©öªº ¥Í²£±Æµ{³nÅé
2. ¤£ª¾¹D¦p¦ó§Ö³t±Æ©w ±ÄÁÊp¹º
3. ¦¨¥»§ì¤£·Ç,¦Û¤vºâ¤ñ³nÅéºâ¦³¥Î
4. ·Q¾Ç²ß¨t²Î³W¹º,·Q§ä¨t²Î¬[ºcªºÅU°Ý
½ÐÁpµ¸§ÚÌ,¤]³\§ÚÌÀ°±o¤W¦£ |
|
¦^³»ºÝ |
|
|
syntech
µù¥U®É¶¡: 2003-05-16 ¤å³¹: 4225 ¨Ó¦Û: Taipei,Taiwan
²Ä 11 ¼Ó
|
µoªí©ó: ¬P´Á¥| ¤K¤ë 19, 2021 10:45 am ¤å³¹¥DÃD: |
|
|
½Ð°Ñ¦Ò:
Using Google Translate from VFP
https://doughennig.blogspot.com/2011/12/using-google-translate-from-vfp.html
ºô§}¬°:
¥N½X: |
https://www.googleapis.com/language/translate/v2?key=INSERT-YOUR-KEY&q={urlencode(strconv(dbcs ¦r¦ê,9))}&source=zh-TW&target=en
|
X! ©~µM²{¦bGOOGLEªº¨ì,®`§Ú·í®É§Ë¦n¤[ _________________ ¦pªG¤½¥q¦³¤U¦C§xÂZ:
1. §ä¤£¨ì«K©y,§Ö³t,²©öªº ¥Í²£±Æµ{³nÅé
2. ¤£ª¾¹D¦p¦ó§Ö³t±Æ©w ±ÄÁÊp¹º
3. ¦¨¥»§ì¤£·Ç,¦Û¤vºâ¤ñ³nÅéºâ¦³¥Î
4. ·Q¾Ç²ß¨t²Î³W¹º,·Q§ä¨t²Î¬[ºcªºÅU°Ý
½ÐÁpµ¸§ÚÌ,¤]³\§ÚÌÀ°±o¤W¦£ |
|
¦^³»ºÝ |
|
|
foxy
µù¥U®É¶¡: 2007-08-16 ¤å³¹: 245 ¨Ó¦Û: ®õ°ê
²Ä 12 ¼Ó
|
µoªí©ó: ¬P´Á¥| ¤K¤ë 19, 2021 5:26 pm ¤å³¹¥DÃD: |
|
|
css ¼g¨ì: | ºâ¤F¡A¤£³r§Aª±°Õ¡C
«¥°µ¤H¤£¯à¤£«p¹D¡C
*==============*
cAnsi = "§An½Ð¦Y¶º¬O¶Ü"
cUnicode = strconv(cAnsi, 5)
cUTF8 = strconv(cAnsi, 9)
c2Unicode = strconv(cUTF8, 12)
c2UTF8 = strconv(cUnicode, 10)
? c2Unicode == cUnicode
? c2UTF8 == cUTF8
*==============*
cUnicodeResult = strconv(cUnicode, 15)
cUtf8Result = strconv(cUTF8, 15)
*==============* |
ì¨Ó¤j«L§A¤@ª½¦b¶}ª±¯º, «¢«¢«¢
²{¦b¤p§Ì§Ú¶}©l¦³¨ÇÀ´¤F.
cAnsi = "§An½Ð¦Y¶º¬O¶Ü" && ¦n°Ú, ¤j«Ln¥I¿ú
cAnsi = "°ê" && ÁÙ¬O½Í°ê®a¤j¨Æ§a, «¢«¢«¢
cUnicode = strconv(cAnsi, 5)
cUTF8 = strconv(cAnsi, 9)
c2Unicode = strconv(cUTF8, 12)
c2UTF8 = strconv(cUnicode, 10)
? c2Unicode == cUnicode
? c2UTF8 == cUTF8
*==============*
cUnicodeResult = strconv(cUnicode, 15) && ³oÓ±o¨ì¤F0B57, ¸ò¹ê»Úªº570B «ê¦nÄAË.
cUtf8Result = strconv(cUTF8, 15) && ³oÓ±o¨ìE59C8B, §¹¥þ¥¿½T
ì¨Ó³£n¸g¹L strconv(value, 15), ¤Ó±j¤F
ÁÂÁ±z, ¤j«L _________________ ¶i¾P¦s+¥Í²£»s³y+·|p+û¤uÁ~¸ê+CRM+POS¹s°â+À\ÆU¤â¾÷app+¹q°Ó¤â¾÷app+¹q°Óºô¯¸,ª«¬y¨t²Î. ¥¿/²Å餤¤å,^,¤é,®õ,½q¨l¤å. MS SQL Server + «e¥x VFP + PHP ºô¯¸ + Flutter ¤â¾÷ App, ³£¦@¨É MS SQL Serverªº¸ê®Æ. www.foxacc.com LINE: mike-lm |
|
¦^³»ºÝ |
|
|
foxy
µù¥U®É¶¡: 2007-08-16 ¤å³¹: 245 ¨Ó¦Û: ®õ°ê
²Ä 13 ¼Ó
|
µoªí©ó: ¬P´Á¥| ¤K¤ë 19, 2021 5:33 pm ¤å³¹¥DÃD: |
|
|
syntech ¼g¨ì: | { UTF-8 ¦r¦ê} => {URLENCODE ¦r¦ê(¥Î³oÓ¶K¦bºô§}°Ñ¼Æ¤W)} => ®³¥h½Ķ => { ºô¶¤º®e¬O UTF-8 ¦r¦ê}
URLENCODE/URLDECODE
¥N½X: |
*-----------------------------------
FUNCTION int2hex (num)
DECLARE INTEGER wnsprintf IN Shlwapi;
STRING @lpOut, INTEGER cchLimitIn,;
STRING pszFmt, INTEGER
LOCAL lnResult, lcResult
lcResult = SPACE(20)
lnResult = wnsprintf(@lcResult, 20, "%x", num)
RETURN Left(lcResult, lnResult)
Function URLdecode
PARAMETER pcInStr
* ' unencode EVERY %XX
* ' (keep track of current position so you don't unencode
* ' a percent that just came out of an URLencoded char
LOCAL I, tStr, tChr, tOut
tStr = pcInStr
tOut = ""
tStr = StrTran(tStr, "+", " ")
I = 1
do While I <= Len(tStr)
If (SubStr(tStr, I, 1) = "%") ;
And SubStr(tStr, I + 1, 1) $ "0123456789ABCDEF" ;
And SubStr(tStr, I + 2, 1) $ "0123456789ABCDEF"
tChr = (( At( SubStr(tStr, I + 1, 1), "0123456789ABCDEF" )-1) * 16 ) ;
+ (( At( SubStr(tStr, I + 2, 1), "0123456789ABCDEF" )-1) )
I = I + 2
*03/18/03 Zero's are now allowed.
if between(tChr,0,255) && 03/18/03
* if tChr > 0 and tChr < 255
tOut = tOut + chr( tChr )
endif
else
tOut = tOut + SubStr(tStr, I, 1)
EndIf
I = I + 1
EndDo
RETURN tOut
**********************************************************
Function URLencode
PARAMETER pcInStr
* ' encode Percent signs
* ' Double Quotes
* ' CarriageReturn / LineFeeds
LOCAL lcOut, lnI
lcOut = ''
for lnI = 1 to len(pcInStr)
lcCh = Substr(pcInStr,lnI,1)
if not between( lcCh, chr(33), chr(126) ) ;
or inlist(lcCh,[+],[%],["],[,],['],[`],[=],[ ],[&])
lcCh = '%' + PADL( int2Hex( asc(lcCh) ), 2, '0' )
endif
lcOut = lcOut + lcCh
endfor
*!* lcOut = pcInStr
*!* lcOut = StrTran(lcOut, "+", "%2B")
*!* lcOut = StrTran(lcOut, "%", "%25")
*!* lcOut = StrTran(lcOut, '"', "%22")
*!* lcOut = StrTran(lcOut, ",", "%2C")
*!* lcOut = StrTran(lcOut, Chr(13) + Chr(10), "%0D%0A" )
*!* lcOut = StrTran(lcOut, Chr(13), "%0D")
*!* lcOut = StrTran(lcOut, Chr(13), "%0A")
RETURN lcOut
|
|
¤Ó±j¤F,¤p§Ì»Ýn®É¶¡ºCºC®ø¤Æ,¦Ñ¤û¦Y¤F¯ó,³£¬On©CÄZ¤@¾ã¤Ñªº,¤HÃþ¤]¬O¦V¦Ñ¤û¾Ç²ß,¶R¤F¤f»¿}ÄZÓ¤£°±,©Ò¥H¥s¦Û¤v¬°¤û¤H
ÁÂÁ¤j«L _________________ ¶i¾P¦s+¥Í²£»s³y+·|p+û¤uÁ~¸ê+CRM+POS¹s°â+À\ÆU¤â¾÷app+¹q°Ó¤â¾÷app+¹q°Óºô¯¸,ª«¬y¨t²Î. ¥¿/²Å餤¤å,^,¤é,®õ,½q¨l¤å. MS SQL Server + «e¥x VFP + PHP ºô¯¸ + Flutter ¤â¾÷ App, ³£¦@¨É MS SQL Serverªº¸ê®Æ. www.foxacc.com LINE: mike-lm |
|
¦^³»ºÝ |
|
|
syntech
µù¥U®É¶¡: 2003-05-16 ¤å³¹: 4225 ¨Ó¦Û: Taipei,Taiwan
²Ä 14 ¼Ó
|
µoªí©ó: ¬P´Á¤ ¤K¤ë 20, 2021 10:22 am ¤å³¹¥DÃD: |
|
|
foxy ¼g¨ì: |
cUnicodeResult = strconv(cUnicode, 15) && ³oÓ±o¨ì¤F0B57, ¸ò¹ê»Úªº570B «ê¦nÄAË.
|
https://windsoul0312.pixnet.net/blog/post/29915007
=======
¥t¥~¤@ºØ¥s°µUTF-16¡A¨ä¥Dn¬O¥Î16 bit¬°¤@³æ¦ì¡A°ò¥»¤W»PUTF-8¬Û®e¡A
¦ý¬OUTF-16¦³¨âºØªº¦sÀx¤è¦¡¡A¤@ºØ¬OUnicode-LE¡B¤@ºØ¬OUnicode-BE¡C
¥Dnªº¤À§O¬O¡u§À§Ç( Endian )¡vªº¤£¦P¡C
¤p§À§Ç(LE)ªº¸Ü¡AMicrosoft ©Î Linux ªº¤å¥ó¬O¥H LE( Little Endian ) ¨Ó¦sªº¡C
¤j§À§Ç(BE)ªº¸Ü¡AMacintosh ªº¤å¥ó¬O¥H BE( Big Endian ) ¨Ó¦sªº¡C
©Ò¥H§ÚÌ¥xÆW±`¥ÎªºMicrosoft¨t²Î¡A¤j¦h¬OUnicode-LE¬°¥D¡C
=======
https://flykof.pixnet.net/blog/post/23502355
=======
big endian©Mlittle endian¬OCPU³B²z¦h¦r¤¸¼Æªº¤£¦P¤è¦¡¡C¨Ò¦p¡uº~¡v¦rªº
Unicode½s½X¬O6C49¡C¨º»ò¼g¨ì¤å¥ó¸Ì®É¡A¨s³º¬O±N6C¼g¦b«e±¡AÁÙ¬O±N49¼g¦b«e±¡H¦pªG±N6C¼g¦b«e±¡A´N¬Obig endian¡C¦pªG±N49¼g¦b«e±¡A´N¬Olittle endian¡C
¡@¡@¡uendian¡v³oÓµü¥X¦Û¡m®æ¦C¦ò¹C°O¡n¡C¤p¤H°êªº¤º¾Ô´N·½©ó¦YÂû³J®É¬O¨s³º±q¤jÀY(Big-Endian)ºV¶}ÁÙ¬O±q¤pÀY(Little-Endian)ºV¶}¡A¥Ñ¦¹´¿µo¥Í¹L¤»¦¸«q¶Ã¡A¤@Ó¬Ó«Ò°e¤F©R¡A¥t¤@Ó¥á¤F¤ý¦ì¡C
¡@¡@§Ṳ́@¯ë±Nendian½Ķ¦¨¡u¦r¤¸§Ç¡v¡A±Nbig endian©Mlittle endianºÙ§@¡u¤j§À¡v©M¡u¤p§À¡v¡C
=======
§ä¹ï¤u¨ã´N¥i¥HÂà´«°Õ _________________ ¦pªG¤½¥q¦³¤U¦C§xÂZ:
1. §ä¤£¨ì«K©y,§Ö³t,²©öªº ¥Í²£±Æµ{³nÅé
2. ¤£ª¾¹D¦p¦ó§Ö³t±Æ©w ±ÄÁÊp¹º
3. ¦¨¥»§ì¤£·Ç,¦Û¤vºâ¤ñ³nÅéºâ¦³¥Î
4. ·Q¾Ç²ß¨t²Î³W¹º,·Q§ä¨t²Î¬[ºcªºÅU°Ý
½ÐÁpµ¸§ÚÌ,¤]³\§ÚÌÀ°±o¤W¦£ |
|
¦^³»ºÝ |
|
|
foxy
µù¥U®É¶¡: 2007-08-16 ¤å³¹: 245 ¨Ó¦Û: ®õ°ê
²Ä 15 ¼Ó
|
µoªí©ó: ¬P´Á¤ ¤K¤ë 20, 2021 2:16 pm ¤å³¹¥DÃD: |
|
|
syntech ¼g¨ì: |
¤p§À§Ç(LE)ªº¸Ü¡AMicrosoft ©Î Linux ªº¤å¥ó¬O¥H LE( Little Endian ) ¨Ó¦sªº¡C
¤j§À§Ç(BE)ªº¸Ü¡AMacintosh ªº¤å¥ó¬O¥H BE( Big Endian ) ¨Ó¦sªº¡C
©Ò¥H§ÚÌ¥xÆW±`¥ÎªºMicrosoft¨t²Î¡A¤j¦h¬OUnicode-LE¬°¥D¡C
=======
https://flykof.pixnet.net/blog/post/23502355
=======
big endian©Mlittle endian¬OCPU³B²z¦h¦r¤¸¼Æªº¤£¦P¤è¦¡¡C¨Ò¦p¡uº~¡v¦rªº
Unicode½s½X¬O6C49¡C¨º»ò¼g¨ì¤å¥ó¸Ì®É¡A¨s³º¬O±N6C¼g¦b«e±¡AÁÙ¬O±N49¼g¦b«e±¡H¦pªG±N6C¼g¦b«e±¡A´N¬Obig endian¡C¦pªG±N49¼g¦b«e±¡A´N¬Olittle endian¡C
¡@¡@¡uendian¡v³oÓµü¥X¦Û¡m®æ¦C¦ò¹C°O¡n¡C¤p¤H°êªº¤º¾Ô´N·½©ó¦YÂû³J®É¬O¨s³º±q¤jÀY(Big-Endian)ºV¶}ÁÙ¬O±q¤pÀY(Little-Endian)ºV¶}¡A¥Ñ¦¹´¿µo¥Í¹L¤»¦¸«q¶Ã¡A¤@Ó¬Ó«Ò°e¤F©R¡A¥t¤@Ó¥á¤F¤ý¦ì¡C
¡@¡@§Ṳ́@¯ë±Nendian½Ķ¦¨¡u¦r¤¸§Ç¡v¡A±Nbig endian©Mlittle endianºÙ§@¡u¤j§À¡v©M¡u¤p§À¡v¡C
=======
§ä¹ï¤u¨ã´N¥i¥HÂà´«°Õ |
ÁÂÁ±z,¤j«L. ¤SÅý¤p§Ì§Ú¤j¶}²´¬É¤F,¤W¦¸ªº¸ê®ÆÁÙ¨S¦³®ø¤Æ,³o¤@¦¸¤Sn´X¦~¤~¯à©CÄZ§¹¦¨,°µÓ¤û¤H¬O«Ü²Öªº.
¦ý¬O §ÚÁÙ¬O ¤£À´¸Ó «ç¼Ë¤~¯à§â0B57 Âର570B. °ß¤@¿ìªk´N¬O°µÓµ{§Ç§â±qstrconv(cUnicode,15)±o¨ìªº¦r¦ê¨C¥|¦r¥À/¼Æ¦r¬°¤@²Õ§â¨C¨âÓ¦r¥À/¼Æ¦rªº¶¶§ÇÄAË, ©ÎªÌÁÙ¦³§óª½±µªº¤èªk¶Ü?
cAnsi = '°ê'
cUnicode = strconv(cAnsi,5)
WAIT WINDOW strconv(cUnicode,15) && returns 0B57, need to be 570B _________________ ¶i¾P¦s+¥Í²£»s³y+·|p+û¤uÁ~¸ê+CRM+POS¹s°â+À\ÆU¤â¾÷app+¹q°Ó¤â¾÷app+¹q°Óºô¯¸,ª«¬y¨t²Î. ¥¿/²Å餤¤å,^,¤é,®õ,½q¨l¤å. MS SQL Server + «e¥x VFP + PHP ºô¯¸ + Flutter ¤â¾÷ App, ³£¦@¨É MS SQL Serverªº¸ê®Æ. www.foxacc.com LINE: mike-lm |
|
¦^³»ºÝ |
|
|
|
|
±z µLªk ¦b³oÓª©±µoªí¤å³¹ ±z µLªk ¦b³oÓª©±¦^ÂФ峹 ±z µLªk ¦b³oÓª©±½s¿è¤å³¹ ±z µLªk ¦b³oÓª©±§R°£¤å³¹ ±z µLªk ¦b³oÓª©±¶i¦æ§ë²¼ ±z µLªk ¦b³oÓª©±ªþ¥[ÀÉ®× ±z µLªk ¦b³oÓª©±¤U¸üÀÉ®×
|
Powered by phpBB © 2001, 2005 phpBB Group ¥¿Å餤¤å»y¨t¥Ñ phpbb-tw ºûÅ@»s§@
|