精华内容
下载资源
问答
  • 如题! woff百度百科:...woff是字体文件,做网页时放到服务端,如果客户端浏览器中可以加载这个。 那么,wo...

    如题!

     

    woff百度百科:http://baike.baidu.com/link?url=toS7yqpN9VlEcO2GOEp5JEA9-TeaZgIdVqTOv7iHshsNvk-V8HtxEY0ku08TzUoDaEfRhGy_atYdr88bCHpwkK

     

    Web开放字体格式

     

    woff是字体文件,做网页时放到服务端,如果客户端浏览器中可以加载这个。

     

    那么,woff格式的字体到底用什么软件来打开和编辑?

     

    web font字体网址 http://www.youziku.com/

     

    调用web font的3种方式:http://www.youziku.com/Home/Instruction

     

     

    字体格式:

    说到浏览器对@font-face的兼容问题,这里涉及到一个字体format的问题,因为不同的浏览器对字体格式支持是不一致的,这样大家有必要了解一下,各种版本的浏览器支持什么样的字体。

    一、TureTpe(.ttf)格式:

    .ttf字体是Windows和Mac的最常见的字体,是一种RAW格式,因此他不为网站优化,支持这种字体的浏览器有【IE9+,Firefox3.5+,Chrome4+,Safari3+,Opera10+,iOS Mobile Safari4.2+】;

    二、OpenType(.otf)格式:

    .otf字体被认为是一种原始的字体格式,其内置在TureType的基础上,所以也提供了更多的功能,支持这种字体的浏览器有【Firefox3.5+,Chrome4.0+,Safari3.1+,Opera10.0+,iOS Mobile Safari4.2+】;

    三、Web Open Font Format(.woff)格式:

    .woff字体是Web字体中最佳格式,他是一个开放的TrueType/OpenType的压缩版本,同时也支持元数据包的分离,支持这种字体的浏览器有【IE9+,Firefox3.5+,Chrome6+,Safari3.6+,Opera11.1+】;

    四、Embedded Open Type(.eot)格式:

    .eot字体是IE专用字体,可以从TrueType创建此格式字体,支持这种字体的浏览器有【IE4+】;

    五、SVG(.svg)格式:

    .svg字体是基于SVG字体渲染的一种格式,支持这种字体的浏览器有【Chrome4+,Safari3.1+,Opera10.0+,iOS Mobile Safari3.2+】
    这就意味着在@font-face中我们至少需要.ttf,.eot两种格式字体,甚至还需要.svg等字体达到更多种浏览版本的支持。

     

     IcoMoon——强悍的图标字体生成利器

    http://icomoon.io/app/#/select

     

     

     

    转载于:https://www.cnblogs.com/riasky/p/3508796.html

    展开全文
  • Woff Viewer 可在 这是一个基本的Web应用程序,允许用户查看woffwoff2 Webfont的字形。 用户在其硬盘驱动器上选择一种Web字体,然后该应用程序显示该字体的所有选定glpyh。 我为这件事情对我来说很好而感到自豪...
  • woff格式字体怎么打开和编辑?

    万次阅读 2014-01-07 09:56:00
    如题!   woff百度百科:...woff是字体文件,做网页时放到服务端,如果客户端浏览器中可以加载这个。   那么,wo

    如题!

     

    woff百度百科:http://baike.baidu.com/link?url=toS7yqpN9VlEcO2GOEp5JEA9-TeaZgIdVqTOv7iHshsNvk-V8HtxEY0ku08TzUoDaEfRhGy_atYdr88bCHpwkK

     

    Web开放字体格式

     

    woff是字体文件,做网页时放到服务端,如果客户端浏览器中可以加载这个。

     

    那么,woff格式的字体到底用什么软件来打开和编辑?

     

    web font字体网址 http://www.youziku.com/

     

    调用web font的3种方式:http://www.youziku.com/Home/Instruction

     

     

    字体格式:

    说到浏览器对@font-face的兼容问题,这里涉及到一个字体format的问题,因为不同的浏览器对字体格式支持是不一致的,这样大家有必要了解一下,各种版本的浏览器支持什么样的字体。

    一、TureTpe(.ttf)格式:

    .ttf字体是Windows和Mac的最常见的字体,是一种RAW格式,因此他不为网站优化,支持这种字体的浏览器有【IE9+,Firefox3.5+,Chrome4+,Safari3+,Opera10+,iOS Mobile Safari4.2+】;

    二、OpenType(.otf)格式:

    .otf字体被认为是一种原始的字体格式,其内置在TureType的基础上,所以也提供了更多的功能,支持这种字体的浏览器有【Firefox3.5+,Chrome4.0+,Safari3.1+,Opera10.0+,iOS Mobile Safari4.2+】;

    三、Web Open Font Format(.woff)格式:

    .woff字体是Web字体中最佳格式,他是一个开放的TrueType/OpenType的压缩版本,同时也支持元数据包的分离,支持这种字体的浏览器有【IE9+,Firefox3.5+,Chrome6+,Safari3.6+,Opera11.1+】;

    四、Embedded Open Type(.eot)格式:

    .eot字体是IE专用字体,可以从TrueType创建此格式字体,支持这种字体的浏览器有【IE4+】;

    五、SVG(.svg)格式:

    .svg字体是基于SVG字体渲染的一种格式,支持这种字体的浏览器有【Chrome4+,Safari3.1+,Opera10.0+,iOS Mobile Safari3.2+】
    这就意味着在@font-face中我们至少需要.ttf,.eot两种格式字体,甚至还需要.svg等字体达到更多种浏览版本的支持。

     

     IcoMoon——强悍的图标字体生成利器

    http://icomoon.io/app/#/select

     

     

    展开全文
  • 搞清楚这个是啥情况后 就要解决woff文件解析的问题了当然是让万能的 Js来帮忙解析借助【百度字体解析平台】(该网站纯JS解析woff,不过不知道为啥好像不好使了) 分析过程省略... 扣下Js文件并改写 (AMD框架 改的比较傻...
  • woff文件 Web开放字体格式(Web Open Font Format,简称WOFF)是一种网页所采用的字体格式标准。此字体格式发展于2009年,现在正由万维网联盟的Web字体工作小组标准化,以求成为推荐标准。此字体格式不但能够有效...

    woff文件

    Web开放字体格式(Web Open Font Format,简称WOFF)是一种网页所采用的字体格式标准。此字体格式发展于2009年,现在正由万维网联盟的Web字体工作小组标准化,以求成为推荐标准。此字体格式不但能够有效利用压缩来减少档案大小,并且不包含加密也不受DRM(数位著作权管理)限制。

    而且有时候再页面接受的时候其返回的是一个字符串:如下

    :[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-irsgMRdM-1628057584150)(C:\Users\jhfan\AppData\Roaming\Typora\typora-user-images\image-20210804111837012.png)]

    在这里插入图片描述

    不过看其这个url,其实简单理解就是

    data:font/truetype;charset=utf-8;base64,+字符串

    有要尝试的可以试着用下面字符串:

    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
    

    前面是格式。可以将其用python的字符串转成woff格式文件。

    import base64
    with open('1.woff','wb') as f:
        f.write( base64.b64decode(jsobject["woff"]) )
    

    其转成woff格式的文件,需要用High-Logic FontCreator这个软件可以将其打开。

    如下

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DXO93bux-1628057584154)(C:\Users\jhfan\AppData\Roaming\Typora\typora-user-images\image-20210804120210770.png)]

    woff文件转xml --fontTools

    对于woff文件,其实有时候我们很难观察到其具体的逻辑是什么,或者说是很难总结其规律。那就是需要将其转换成xml文件,而这个xml文件,说实话个人也不是很懂,只能说是简单的解读。其中就需要一个第三方的插件fontTools。使用文档

    安装fontTools

    pip install fontTools
    

    fontTools使用其实很多,但是我用于其对字体进行逻辑整理,观察其规律。(用于爬虫)

    将1.woff文件转成xml文件

    from fontTools.ttLib import TTFont
    font=TTFont('1.woff')
    font.saveXML('1.xml')
    

    很简单,就是简单的两个命令然后输出xml文件,打开看一下:

    <?xml version="1.0" encoding="UTF-8"?>
    <ttFont sfntVersion="\x00\x01\x00\x00" ttLibVersion="4.25">
    
      <GlyphOrder>
        <!-- The 'id' attribute is only for humans; it is ignored when parsed. -->
        <GlyphID id="0" name=".notdef"/>
        <GlyphID id="1" name="unie876"/>
        <GlyphID id="2" name="unie124"/>
        <GlyphID id="3" name="unic256"/>
        <GlyphID id="4" name="unie937"/>
        <GlyphID id="5" name="unif186"/>
        <GlyphID id="6" name="unib381"/>
        <GlyphID id="7" name="unib594"/>
        <GlyphID id="8" name="unib153"/>
        <GlyphID id="9" name="unib314"/>
        <GlyphID id="10" name="unie217"/>
      </GlyphOrder>
    
      <head>
        <!-- Most of this table will be recalculated by the compiler -->
        <tableVersion value="1.0"/>
        <fontRevision value="1.0"/>
        <checkSumAdjustment value="0xfa0f798e"/>
        <magicNumber value="0x5f0f3cf5"/>
        <flags value="00000000 00001001"/>
        <unitsPerEm value="1000"/>
        <created value="Sun Oct 13 04:00:31 2019"/>
        <modified value="Tue Aug  3 12:31:16 2021"/>
        <xMin value="18"/>
        <yMin value="-20"/>
        <xMax value="566"/>
        <yMax value="738"/>
        <macStyle value="00000000 00000000"/>
        <lowestRecPPEM value="8"/>
        <fontDirectionHint value="2"/>
        <indexToLocFormat value="0"/>
        <glyphDataFormat value="0"/>
      </head>
    
      <hhea>
        <tableVersion value="0x00010000"/>
        <ascent value="1060"/>
        <descent value="-340"/>
        <lineGap value="126"/>
        <advanceWidthMax value="600"/>
        <minLeftSideBearing value="0"/>
        <minRightSideBearing value="68"/>
        <xMaxExtent value="530"/>
        <caretSlopeRise value="1"/>
        <caretSlopeRun value="0"/>
        <caretOffset value="0"/>
        <reserved0 value="0"/>
        <reserved1 value="0"/>
        <reserved2 value="0"/>
        <reserved3 value="0"/>
        <metricDataFormat value="0"/>
        <numberOfHMetrics value="2"/>
      </hhea>
    
      <maxp>
        <!-- Most of this table will be recalculated by the compiler -->
        <tableVersion value="0x10000"/>
        <numGlyphs value="11"/>
        <maxPoints value="57"/>
        <maxContours value="3"/>
        <maxCompositePoints value="0"/>
        <maxCompositeContours value="0"/>
        <maxZones value="2"/>
        <maxTwilightPoints value="0"/>
        <maxStorage value="10"/>
        <maxFunctionDefs value="10"/>
        <maxInstructionDefs value="0"/>
        <maxStackElements value="255"/>
        <maxSizeOfInstructions value="0"/>
        <maxComponentElements value="0"/>
        <maxComponentDepth value="0"/>
      </maxp>
    
      <OS_2>
        <!-- The fields 'usFirstCharIndex' and 'usLastCharIndex'
             will be recalculated by the compiler -->
        <version value="4"/>
        <xAvgCharWidth value="554"/>
        <usWeightClass value="400"/>
        <usWidthClass value="5"/>
        <fsType value="00000000 00001000"/>
        <ySubscriptXSize value="721"/>
        <ySubscriptYSize value="979"/>
        <ySubscriptXOffset value="0"/>
        <ySubscriptYOffset value="196"/>
        <ySuperscriptXSize value="721"/>
        <ySuperscriptYSize value="979"/>
        <ySuperscriptXOffset value="0"/>
        <ySuperscriptYOffset value="672"/>
        <yStrikeoutSize value="68"/>
        <yStrikeoutPosition value="361"/>
        <sFamilyClass value="0"/>
        <panose>
          <bFamilyType value="2"/>
          <bSerifStyle value="0"/>
          <bWeight value="5"/>
          <bProportion value="3"/>
          <bContrast value="0"/>
          <bStrokeVariation value="0"/>
          <bArmStyle value="0"/>
          <bLetterForm value="0"/>
          <bMidline value="0"/>
          <bXHeight value="0"/>
        </panose>
        <ulUnicodeRange1 value="00000000 00000000 00000000 00000000"/>
        <ulUnicodeRange2 value="00010000 00000000 00000000 00000000"/>
        <ulUnicodeRange3 value="00000000 00000000 00000000 00000000"/>
        <ulUnicodeRange4 value="00000000 00000000 00000000 00000000"/>
        <achVendID value="PfEd"/>
        <fsSelection value="00000000 01000000"/>
        <usFirstCharIndex value="45395"/>
        <usLastCharIndex value="61830"/>
        <sTypoAscender value="1060"/>
        <sTypoDescender value="-340"/>
        <sTypoLineGap value="126"/>
        <usWinAscent value="1060"/>
        <usWinDescent value="340"/>
        <ulCodePageRange1 value="00000000 00000000 00000000 00000001"/>
        <ulCodePageRange2 value="00000000 00000000 00000000 00000000"/>
        <sxHeight value="0"/>
        <sCapHeight value="0"/>
        <usDefaultChar value="0"/>
        <usBreakChar value="32"/>
        <usMaxContext value="0"/>
      </OS_2>
    
      <hmtx>
        <mtx name=".notdef" width="100" lsb="0"/>
        <mtx name="unib153" width="600" lsb="0"/>
        <mtx name="unib314" width="600" lsb="0"/>
        <mtx name="unib381" width="600" lsb="0"/>
        <mtx name="unib594" width="600" lsb="0"/>
        <mtx name="unic256" width="600" lsb="0"/>
        <mtx name="unie124" width="600" lsb="0"/>
        <mtx name="unie217" width="600" lsb="0"/>
        <mtx name="unie876" width="600" lsb="0"/>
        <mtx name="unie937" width="600" lsb="0"/>
        <mtx name="unif186" width="600" lsb="0"/>
      </hmtx>
    
      <cmap>
        <tableVersion version="0"/>
        <cmap_format_4 platformID="0" platEncID="3" language="0">
          <map code="0xb153" name="unib153"/><!-- HANGUL SYLLABLE NYEOS -->
          <map code="0xb314" name="unib314"/><!-- HANGUL SYLLABLE DAESS -->
          <map code="0xb381" name="unib381"/><!-- HANGUL SYLLABLE DEB -->
          <map code="0xb594" name="unib594"/><!-- HANGUL SYLLABLE DDYAEM -->
          <map code="0xc256" name="unic256"/><!-- HANGUL SYLLABLE SWENH -->
          <map code="0xe124" name="unie124"/><!-- ???? -->
          <map code="0xe217" name="unie217"/><!-- ???? -->
          <map code="0xe876" name="unie876"/><!-- ???? -->
          <map code="0xe937" name="unie937"/><!-- ???? -->
          <map code="0xf186" name="unif186"/><!-- ???? -->
        </cmap_format_4>
        <cmap_format_0 platformID="1" platEncID="0" language="0">
        </cmap_format_0>
        <cmap_format_4 platformID="3" platEncID="1" language="0">
          <map code="0xb153" name="unib153"/><!-- HANGUL SYLLABLE NYEOS -->
          <map code="0xb314" name="unib314"/><!-- HANGUL SYLLABLE DAESS -->
          <map code="0xb381" name="unib381"/><!-- HANGUL SYLLABLE DEB -->
          <map code="0xb594" name="unib594"/><!-- HANGUL SYLLABLE DDYAEM -->
          <map code="0xc256" name="unic256"/><!-- HANGUL SYLLABLE SWENH -->
          <map code="0xe124" name="unie124"/><!-- ???? -->
          <map code="0xe217" name="unie217"/><!-- ???? -->
          <map code="0xe876" name="unie876"/><!-- ???? -->
          <map code="0xe937" name="unie937"/><!-- ???? -->
          <map code="0xf186" name="unif186"/><!-- ???? -->
        </cmap_format_4>
      </cmap>
    
      <loca>
        <!-- The 'loca' table will be calculated by the compiler -->
      </loca>
    
      <glyf>
    
        <!-- The xMin, yMin, xMax and yMax values
             will be recalculated by the compiler. -->
    
        <TTGlyph name=".notdef" xMin="18" yMin="-20" xMax="50" yMax="14">
          <contour>
            <pt x="18" y="14" on="1"/>
            <pt x="50" y="14" on="1"/>
            <pt x="50" y="-20" on="1"/>
          </contour>
          <instructions/>
        </TTGlyph>
    
        <TTGlyph name="unib153" xMin="36" yMin="-14" xMax="557" yMax="738">
          <contour>
            <pt x="329" y="738" on="1"/>
            <pt x="188" y="738" on="0"/>
            <pt x="123" y="661" on="1"/>
            <pt x="54" y="614" on="0"/>
            <pt x="54" y="533" on="1"/>
            <pt x="54" y="490" on="0"/>
            <pt x="92" y="469" on="1"/>
            <pt x="159" y="411" on="0"/>
            <pt x="165" y="385" on="1"/>
            <pt x="165" y="376" on="1"/>
            <pt x="109" y="357" on="0"/>
            <pt x="80" y="349" on="1"/>
            <pt x="36" y="265" on="0"/>
            <pt x="36" y="190" on="1"/>
            <pt x="36" y="99" on="0"/>
            <pt x="187" y="-14" on="0"/>
            <pt x="416" y="-14" on="0"/>
            <pt x="487" y="48" on="1"/>
            <pt x="557" y="99" on="0"/>
            <pt x="557" y="190" on="1"/>
            <pt x="557" y="265" on="0"/>
            <pt x="501" y="349" on="1"/>
            <pt x="487" y="357" on="0"/>
            <pt x="416" y="376" on="1"/>
            <pt x="416" y="385" on="1"/>
            <pt x="464" y="411" on="0"/>
            <pt x="522" y="469" on="1"/>
            <pt x="520" y="490" on="0"/>
            <pt x="520" y="533" on="1"/>
            <pt x="520" y="614" on="0"/>
            <pt x="464" y="661" on="1"/>
            <pt x="416" y="738" on="0"/>
          </contour>
          <contour>
            <pt x="329" y="653" on="1"/>
            <pt x="371" y="653" on="0"/>
            <pt x="412" y="640" on="1"/>
            <pt x="444" y="591" on="0"/>
            <pt x="444" y="490" on="0"/>
            <pt x="416" y="438" on="1"/>
            <pt x="398" y="402" on="0"/>
            <pt x="236" y="402" on="0"/>
            <pt x="164" y="438" on="1"/>
            <pt x="159" y="490" on="0"/>
            <pt x="159" y="591" on="0"/>
            <pt x="166" y="640" on="1"/>
            <pt x="243" y="653" on="0"/>
          </contour>
          <contour>
            <pt x="329" y="350" on="1"/>
            <pt x="379" y="350" on="0"/>
            <pt x="448" y="299" on="1"/>
            <pt x="487" y="252" on="0"/>
            <pt x="487" y="132" on="0"/>
            <pt x="448" y="91" on="1"/>
            <pt x="385" y="97" on="0"/>
            <pt x="212" y="97" on="0"/>
            <pt x="109" y="132" on="0"/>
            <pt x="109" y="252" on="0"/>
            <pt x="165" y="299" on="1"/>
            <pt x="212" y="350" on="0"/>
          </contour>
          <instructions/>
        </TTGlyph>
    
        <TTGlyph name="unib314" xMin="36" yMin="0" xMax="566" yMax="701">
          <contour>
            <pt x="398" y="701" on="1"/>
            <pt x="36" y="240" on="1"/>
            <pt x="36" y="149" on="1"/>
            <pt x="398" y="149" on="1"/>
            <pt x="398" y="0" on="1"/>
            <pt x="456" y="0" on="1"/>
            <pt x="456" y="149" on="1"/>
            <pt x="566" y="149" on="1"/>
            <pt x="566" y="219" on="1"/>
            <pt x="456" y="219" on="1"/>
            <pt x="456" y="701" on="1"/>
          </contour>
          <contour>
            <pt x="376" y="600" on="1"/>
            <pt x="398" y="600" on="1"/>
            <pt x="398" y="219" on="1"/>
            <pt x="125" y="219" on="1"/>
          </contour>
          <instructions/>
        </TTGlyph>
    
        <TTGlyph name="unib381" xMin="50" yMin="-14" xMax="537" yMax="738">
          <contour>
            <pt x="286" y="738" on="1"/>
            <pt x="187" y="738" on="0"/>
            <pt x="50" y="591" on="0"/>
            <pt x="50" y="477" on="1"/>
            <pt x="50" y="380" on="0"/>
            <pt x="108" y="317" on="1"/>
            <pt x="173" y="268" on="0"/>
            <pt x="266" y="268" on="1"/>
            <pt x="340" y="243" on="0"/>
            <pt x="437" y="299" on="0"/>
            <pt x="476" y="385" on="1"/>
            <pt x="458" y="385" on="1"/>
            <pt x="474" y="332" on="1"/>
            <pt x="474" y="219" on="0"/>
            <pt x="413" y="127" on="1"/>
            <pt x="371" y="55" on="0"/>
            <pt x="286" y="55" on="1"/>
            <pt x="165" y="55" on="0"/>
            <pt x="159" y="173" on="1"/>
            <pt x="50" y="173" on="1"/>
            <pt x="86" y="-14" on="0"/>
            <pt x="289" y="-14" on="1"/>
            <pt x="403" y="-13" on="0"/>
            <pt x="496" y="99" on="1"/>
            <pt x="537" y="207" on="0"/>
            <pt x="537" y="363" on="1"/>
            <pt x="537" y="540" on="0"/>
            <pt x="487" y="678" on="1"/>
            <pt x="416" y="738" on="0"/>
          </contour>
          <contour>
            <pt x="289" y="678" on="1"/>
            <pt x="357" y="678" on="0"/>
            <pt x="400" y="604" on="1"/>
            <pt x="461" y="547" on="0"/>
            <pt x="461" y="411" on="0"/>
            <pt x="354" y="317" on="0"/>
            <pt x="289" y="317" on="1"/>
            <pt x="205" y="317" on="0"/>
            <pt x="159" y="411" on="0"/>
            <pt x="159" y="477" on="1"/>
            <pt x="159" y="556" on="0"/>
            <pt x="213" y="678" on="0"/>
          </contour>
          <instructions/>
        </TTGlyph>
    
        <TTGlyph name="unib594" xMin="50" yMin="-14" xMax="537" yMax="701">
          <contour>
            <pt x="103" y="701" on="1"/>
            <pt x="54" y="318" on="1"/>
            <pt x="159" y="318" on="1"/>
            <pt x="165" y="350" on="0"/>
            <pt x="236" y="384" on="1"/>
            <pt x="250" y="405" on="0"/>
            <pt x="329" y="405" on="1"/>
            <pt x="375" y="396" on="0"/>
            <pt x="459" y="317" on="0"/>
            <pt x="459" y="219" on="1"/>
            <pt x="459" y="137" on="0"/>
            <pt x="357" y="79" on="0"/>
            <pt x="305" y="79" on="1"/>
            <pt x="236" y="79" on="0"/>
            <pt x="178" y="85" on="1"/>
            <pt x="138" y="114" on="0"/>
            <pt x="159" y="180" on="1"/>
            <pt x="50" y="180" on="1"/>
            <pt x="50" y="91" on="0"/>
            <pt x="144" y="41" on="1"/>
            <pt x="188" y="-14" on="0"/>
            <pt x="289" y="-14" on="1"/>
            <pt x="388" y="-14" on="0"/>
            <pt x="461" y="58" on="1"/>
            <pt x="537" y="105" on="0"/>
            <pt x="537" y="219" on="1"/>
            <pt x="537" y="342" on="0"/>
            <pt x="414" y="469" on="0"/>
            <pt x="312" y="469" on="1"/>
            <pt x="261" y="474" on="0"/>
            <pt x="236" y="453" on="1"/>
            <pt x="170" y="458" on="0"/>
            <pt x="147" y="411" on="1"/>
            <pt x="159" y="411" on="1"/>
            <pt x="157" y="678" on="1"/>
            <pt x="522" y="678" on="1"/>
            <pt x="522" y="701" on="1"/>
          </contour>
          <instructions/>
        </TTGlyph>
    
        <TTGlyph name="unic256" xMin="50" yMin="-14" xMax="537" yMax="738">
          <contour>
            <pt x="329" y="738" on="1"/>
            <pt x="179" y="738" on="0"/>
            <pt x="126" y="624" on="1"/>
            <pt x="50" y="501" on="0"/>
            <pt x="50" y="332" on="1"/>
            <pt x="50" y="179" on="0"/>
            <pt x="125" y="70" on="1"/>
            <pt x="165" y="-13" on="0"/>
            <pt x="301" y="-14" on="1"/>
            <pt x="403" y="-13" on="0"/>
            <pt x="537" y="127" on="0"/>
            <pt x="537" y="344" on="0"/>
            <pt x="421" y="469" on="0"/>
            <pt x="319" y="469" on="1"/>
            <pt x="248" y="469" on="0"/>
            <pt x="200" y="425" on="1"/>
            <pt x="165" y="405" on="0"/>
            <pt x="132" y="342" on="1"/>
            <pt x="159" y="342" on="1"/>
            <pt x="126" y="363" on="1"/>
            <pt x="126" y="484" on="0"/>
            <pt x="164" y="566" on="1"/>
            <pt x="215" y="656" on="0"/>
            <pt x="301" y="678" on="1"/>
            <pt x="424" y="656" on="0"/>
            <pt x="461" y="538" on="1"/>
            <pt x="536" y="538" on="1"/>
            <pt x="501" y="724" on="0"/>
          </contour>
          <contour>
            <pt x="297" y="411" on="1"/>
            <pt x="376" y="423" on="0"/>
            <pt x="421" y="349" on="1"/>
            <pt x="480" y="309" on="0"/>
            <pt x="480" y="140" on="0"/>
            <pt x="413" y="91" on="1"/>
            <pt x="367" y="79" on="0"/>
            <pt x="297" y="55" on="1"/>
            <pt x="231" y="55" on="0"/>
            <pt x="188" y="96" on="1"/>
            <pt x="159" y="147" on="0"/>
            <pt x="159" y="293" on="0"/>
            <pt x="232" y="411" on="0"/>
          </contour>
          <instructions/>
        </TTGlyph>
    
        <TTGlyph name="unie124" xMin="50" yMin="-14" xMax="537" yMax="738">
          <contour>
            <pt x="329" y="738" on="1"/>
            <pt x="165" y="724" on="0"/>
            <pt x="101" y="624" on="1"/>
            <pt x="50" y="529" on="0"/>
            <pt x="50" y="205" on="0"/>
            <pt x="101" y="90" on="1"/>
            <pt x="165" y="-14" on="0"/>
            <pt x="424" y="-14" on="0"/>
            <pt x="481" y="90" on="1"/>
            <pt x="537" y="205" on="0"/>
            <pt x="537" y="529" on="0"/>
            <pt x="481" y="624" on="1"/>
            <pt x="424" y="724" on="0"/>
          </contour>
          <contour>
            <pt x="329" y="656" on="1"/>
            <pt x="385" y="656" on="0"/>
            <pt x="435" y="550" on="1"/>
            <pt x="480" y="477" on="0"/>
            <pt x="480" y="226" on="0"/>
            <pt x="435" y="153" on="1"/>
            <pt x="385" y="57" on="0"/>
            <pt x="196" y="57" on="0"/>
            <pt x="165" y="153" on="1"/>
            <pt x="159" y="226" on="0"/>
            <pt x="159" y="477" on="0"/>
            <pt x="165" y="550" on="1"/>
            <pt x="196" y="656" on="0"/>
          </contour>
          <instructions/>
        </TTGlyph>
    
        <TTGlyph name="unie217" xMin="50" yMin="-14" xMax="537" yMax="738">
          <contour>
            <pt x="297" y="738" on="1"/>
            <pt x="191" y="738" on="0"/>
            <pt x="159" y="661" on="1"/>
            <pt x="76" y="601" on="0"/>
            <pt x="80" y="504" on="1"/>
            <pt x="144" y="504" on="1"/>
            <pt x="163" y="575" on="0"/>
            <pt x="240" y="656" on="0"/>
            <pt x="305" y="652" on="1"/>
            <pt x="375" y="656" on="0"/>
            <pt x="421" y="640" on="1"/>
            <pt x="445" y="591" on="0"/>
            <pt x="445" y="458" on="0"/>
            <pt x="367" y="393" on="0"/>
            <pt x="297" y="393" on="1"/>
            <pt x="250" y="393" on="1"/>
            <pt x="250" y="330" on="1"/>
            <pt x="329" y="330" on="1"/>
            <pt x="378" y="344" on="0"/>
            <pt x="459" y="265" on="0"/>
            <pt x="459" y="127" on="0"/>
            <pt x="421" y="97" on="1"/>
            <pt x="367" y="79" on="0"/>
            <pt x="329" y="79" on="1"/>
            <pt x="243" y="57" on="0"/>
            <pt x="190" y="90" on="1"/>
            <pt x="130" y="139" on="0"/>
            <pt x="138" y="210" on="1"/>
            <pt x="50" y="210" on="1"/>
            <pt x="58" y="87" on="0"/>
            <pt x="159" y="36" on="1"/>
            <pt x="187" y="-13" on="0"/>
            <pt x="329" y="-14" on="1"/>
            <pt x="400" y="-14" on="0"/>
            <pt x="537" y="105" on="0"/>
            <pt x="537" y="207" on="1"/>
            <pt x="537" y="266" on="0"/>
            <pt x="507" y="317" on="1"/>
            <pt x="476" y="350" on="0"/>
            <pt x="405" y="373" on="1"/>
            <pt x="520" y="411" on="0"/>
            <pt x="520" y="532" on="1"/>
            <pt x="520" y="614" on="0"/>
            <pt x="395" y="738" on="0"/>
          </contour>
          <instructions/>
        </TTGlyph>
    
        <TTGlyph name="unie876" xMin="80" yMin="0" xMax="520" yMax="701">
          <contour>
            <pt x="80" y="701" on="1"/>
            <pt x="80" y="624" on="1"/>
            <pt x="456" y="624" on="1"/>
            <pt x="187" y="0" on="1"/>
            <pt x="258" y="0" on="1"/>
            <pt x="520" y="637" on="1"/>
            <pt x="520" y="701" on="1"/>
          </contour>
          <instructions/>
        </TTGlyph>
    
        <TTGlyph name="unie937" xMin="99" yMin="0" xMax="369" yMax="701">
          <contour>
            <pt x="291" y="701" on="1"/>
            <pt x="283" y="667" on="0"/>
            <pt x="160" y="601" on="0"/>
            <pt x="99" y="594" on="1"/>
            <pt x="99" y="533" on="1"/>
            <pt x="200" y="547" on="0"/>
            <pt x="286" y="608" on="1"/>
            <pt x="286" y="0" on="1"/>
            <pt x="369" y="0" on="1"/>
            <pt x="369" y="701" on="1"/>
          </contour>
          <instructions/>
        </TTGlyph>
    
        <TTGlyph name="unif186" xMin="58" yMin="0" xMax="536" yMax="738">
          <contour>
            <pt x="329" y="738" on="1"/>
            <pt x="200" y="738" on="0"/>
            <pt x="61" y="575" on="0"/>
            <pt x="76" y="477" on="1"/>
            <pt x="155" y="477" on="1"/>
            <pt x="147" y="547" on="0"/>
            <pt x="193" y="604" on="1"/>
            <pt x="231" y="678" on="0"/>
            <pt x="297" y="656" on="1"/>
            <pt x="369" y="656" on="0"/>
            <pt x="452" y="576" on="0"/>
            <pt x="452" y="510" on="1"/>
            <pt x="452" y="458" on="0"/>
            <pt x="388" y="387" on="1"/>
            <pt x="367" y="385" on="0"/>
            <pt x="282" y="293" on="1"/>
            <pt x="173" y="231" on="0"/>
            <pt x="144" y="173" on="1"/>
            <pt x="58" y="99" on="0"/>
            <pt x="58" y="0" on="1"/>
            <pt x="536" y="0" on="1"/>
            <pt x="536" y="85" on="1"/>
            <pt x="163" y="85" on="1"/>
            <pt x="174" y="142" on="0"/>
            <pt x="325" y="222" on="1"/>
            <pt x="437" y="317" on="0"/>
            <pt x="462" y="349" on="1"/>
            <pt x="530" y="423" on="0"/>
            <pt x="530" y="608" on="0"/>
            <pt x="413" y="738" on="0"/>
          </contour>
          <instructions/>
        </TTGlyph>
    
      </glyf>
    
      <name>
        <namerecord nameID="0" platformID="1" platEncID="0" langID="0x0" unicode="True">
          Created by font-carrier
        </namerecord>
        <namerecord nameID="1" platformID="1" platEncID="0" langID="0x0" unicode="True">
          .PingFang SC
        </namerecord>
        <namerecord nameID="2" platformID="1" platEncID="0" langID="0x0" unicode="True">
          Regular
        </namerecord>
        <namerecord nameID="3" platformID="1" platEncID="0" langID="0x0" unicode="True">
          .PingFang-SC-Regular
        </namerecord>
        <namerecord nameID="4" platformID="1" platEncID="0" langID="0x0" unicode="True">
          .PingFang-SC-Regular
        </namerecord>
        <namerecord nameID="5" platformID="1" platEncID="0" langID="0x0" unicode="True">
          Version 1.0
        </namerecord>
        <namerecord nameID="6" platformID="1" platEncID="0" langID="0x0" unicode="True">
          .PingFang-SC-Regular
        </namerecord>
        <namerecord nameID="10" platformID="1" platEncID="0" langID="0x0" unicode="True">
          Generated by svg2ttf from Fontello project.
        </namerecord>
        <namerecord nameID="11" platformID="1" platEncID="0" langID="0x0" unicode="True">
          http://fontello.com
        </namerecord>
        <namerecord nameID="0" platformID="3" platEncID="1" langID="0x409">
          Created by font-carrier
        </namerecord>
        <namerecord nameID="1" platformID="3" platEncID="1" langID="0x409">
          .PingFang SC
        </namerecord>
        <namerecord nameID="2" platformID="3" platEncID="1" langID="0x409">
          Regular
        </namerecord>
        <namerecord nameID="3" platformID="3" platEncID="1" langID="0x409">
          .PingFang-SC-Regular
        </namerecord>
        <namerecord nameID="4" platformID="3" platEncID="1" langID="0x409">
          .PingFang-SC-Regular
        </namerecord>
        <namerecord nameID="5" platformID="3" platEncID="1" langID="0x409">
          Version 1.0
        </namerecord>
        <namerecord nameID="6" platformID="3" platEncID="1" langID="0x409">
          .PingFang-SC-Regular
        </namerecord>
        <namerecord nameID="10" platformID="3" platEncID="1" langID="0x409">
          Generated by svg2ttf from Fontello project.
        </namerecord>
        <namerecord nameID="11" platformID="3" platEncID="1" langID="0x409">
          http://fontello.com
        </namerecord>
      </name>
    
      <post>
        <formatType value="2.0"/>
        <italicAngle value="0.0"/>
        <underlinePosition value="14"/>
        <underlineThickness value="0"/>
        <isFixedPitch value="0"/>
        <minMemType42 value="0"/>
        <maxMemType42 value="0"/>
        <minMemType1 value="0"/>
        <maxMemType1 value="11"/>
        <psNames>
          <!-- This file uses unique glyph names based on the information
               found in the 'post' table. Since these names might not be unique,
               we have to invent artificial names in case of clashes. In order to
               be able to retain the original information, we need a name to
               ps name mapping for those cases where they differ. That's what
               you see below.
                -->
        </psNames>
        <extraNames>
          <!-- following are the name that are not taken from the standard Mac glyph order -->
          <psName name="unic256"/>
          <psName name="unib314"/>
          <psName name="unib594"/>
          <psName name="unib153"/>
          <psName name="unie876"/>
          <psName name="unie937"/>
          <psName name="unib381"/>
          <psName name="unie124"/>
          <psName name="unie217"/>
          <psName name="unif186"/>
        </extraNames>
      </post>
    
    </ttFont>
    
    

    开始下面是1到10的值如何获得

    <GlyphOrder>
        <!-- The 'id' attribute is only for humans; it is ignored when parsed. -->
        <GlyphID id="0" name=".notdef"/>
        <GlyphID id="1" name="unie876"/>
        <GlyphID id="2" name="unie124"/>
        <GlyphID id="3" name="unic256"/>
        <GlyphID id="4" name="unie937"/>
        <GlyphID id="5" name="unif186"/>
        <GlyphID id="6" name="unib381"/>
        <GlyphID id="7" name="unib594"/>
        <GlyphID id="8" name="unib153"/>
        <GlyphID id="9" name="unib314"/>
        <GlyphID id="10" name="unie217"/>
      </GlyphOrder>
    
    from fontTools.ttLib import TTFont
    font=TTFont('1.woff')
    uni_list = font.getGlyphOrder()
    for uni in uni_list:
        print(uni)
        
    #输出
    .notdef
    unie876
    …………
    unie217
    

    得到画图的轨迹参数: x,y

     <TTGlyph name="unif186" xMin="58" yMin="0" xMax="536" yMax="738">
          <contour>
            <pt x="329" y="738" on="1"/>
            <pt x="200" y="738" on="0"/>
            <pt x="61" y="575" on="0"/>
            <pt x="76" y="477" on="1"/>
            <pt x="155" y="477" on="1"/>
            <pt x="147" y="547" on="0"/>
            <pt x="193" y="604" on="1"/>
            <pt x="231" y="678" on="0"/>
            <pt x="297" y="656" on="1"/>
            <pt x="369" y="656" on="0"/>
            <pt x="452" y="576" on="0"/>
            <pt x="452" y="510" on="1"/>
            <pt x="452" y="458" on="0"/>
            <pt x="388" y="387" on="1"/>
            <pt x="367" y="385" on="0"/>
            <pt x="282" y="293" on="1"/>
            <pt x="173" y="231" on="0"/>
            <pt x="144" y="173" on="1"/>
            <pt x="58" y="99" on="0"/>
            <pt x="58" y="0" on="1"/>
            <pt x="536" y="0" on="1"/>
            <pt x="536" y="85" on="1"/>
            <pt x="163" y="85" on="1"/>
            <pt x="174" y="142" on="0"/>
            <pt x="325" y="222" on="1"/>
            <pt x="437" y="317" on="0"/>
            <pt x="462" y="349" on="1"/>
            <pt x="530" y="423" on="0"/>
            <pt x="530" y="608" on="0"/>
            <pt x="413" y="738" on="0"/>
          </contour>
          <instructions/>
        </TTGlyph>
    
     for i in font['glyf']["unif186"].coordinates:
            print(i)
     #输出329738)
    …………
    (413738

    当然也可以得到这个轨迹中的on的值

    for i in font['glyf']["unif186"].flags:
        print(i)
    #输出    
    1
    0
    ………………
    0
    

    不过由于对文档的具体参数属性不太属性,所以暂时不知on的值有什么意义。

    可以使用pyplot 对其进行画图看一下可以画出数字的

    import matplotlib.pyplot as plt
    import re
    
    str = """
           <TTGlyph name="unif186" xMin="58" yMin="0" xMax="536" yMax="738">
          <contour>
            <pt x="329" y="738" on="1"/>
            <pt x="200" y="738" on="0"/>
            <pt x="61" y="575" on="0"/>
            <pt x="76" y="477" on="1"/>
            <pt x="155" y="477" on="1"/>
            <pt x="147" y="547" on="0"/>
            <pt x="193" y="604" on="1"/>
            <pt x="231" y="678" on="0"/>
            <pt x="297" y="656" on="1"/>
            <pt x="369" y="656" on="0"/>
            <pt x="452" y="576" on="0"/>
            <pt x="452" y="510" on="1"/>
            <pt x="452" y="458" on="0"/>
            <pt x="388" y="387" on="1"/>
            <pt x="367" y="385" on="0"/>
            <pt x="282" y="293" on="1"/>
            <pt x="173" y="231" on="0"/>
            <pt x="144" y="173" on="1"/>
            <pt x="58" y="99" on="0"/>
            <pt x="58" y="0" on="1"/>
            <pt x="536" y="0" on="1"/>
            <pt x="536" y="85" on="1"/>
            <pt x="163" y="85" on="1"/>
            <pt x="174" y="142" on="0"/>
            <pt x="325" y="222" on="1"/>
            <pt x="437" y="317" on="0"/>
            <pt x="462" y="349" on="1"/>
            <pt x="530" y="423" on="0"/>
            <pt x="530" y="608" on="0"/>
            <pt x="413" y="738" on="0"/>
          </contour>
          <instructions/>
        </TTGlyph>
    """
    
    x = [int(i) for i in re.findall(r'<pt x="(.*?)" y=', str)]
    
    y = [int(i) for i in re.findall(r'y="(.*?)" on=', str)]
    
    plt.plot(x, y)
    
    plt.show()
    
    

    具体如下

    在这里插入图片描述

    大概可以看出一个数字2.其中将on的值全部改成0或者1好像也不影响图片。所以不太懂。

    因为一共就10个数字,有时候对于返回的比如name="unif186"对应的数字,进行一次训练即可知道其代表的是数字多少,这个就10个还好训练,以及数字格式不变,可以简单将x,y的值作为一个数字判断依据。

    展开全文
  • woff 这种字体文件怎么抓取数据

    万次阅读 2018-06-14 22:25:19
    这是在请求起点中文网的小说字数时遇到的问题.pip install fontTools 是用于将woff这种字体文件转化成XML文件在python的命令窗口运行这...woff文件内容是什么需要先下一个工具来查看即下图这个软件(需破解)安装下图这个...

    这是在请求起点中文网的小说字数时遇到的问题.

    pip install fontTools 是用于将woff这种字体文件转化成XML文件

    在python的命令窗口运行这句话.

    ================================================================

    首先要先查看这个woff文件内容是什么

    需要先下一个工具来查看即下图这个软件(需破解)

    安装下图这个,先装英文原版,再打开汉化补丁中的另一个是中文本的,英文和中文想用哪个随自己喜好.

    将字体文件的网址在浏览器上下载下来, 在这个文件中打开


    ===================================================================================================


    在python中:

    1.每次都刷新字体font-face文件:如https://qidian.gtimg.com/qd_anti_spider/XnXLddDL.woff,

    所以每次请求,都需要取截取这个字体文件的url地址(url一直在变)。

    2.请求这个地址,将这个字体文件下载到本地,然后将.woff文件转化成.xml文件。

    3.去页面的源代码中提取字符串(十进制的编码):

    &#100112;&#100113;&#100113;&#100110;&#100111;&#100111;

    4.将100112/100113这些十进制编码的数据转化成十六进制的数据;

    5.根据这个十六进制的数据从xml文件中找到对应的map对象,提取map的name属性,然后再根据name属性的值,从number_dict中提取对应的值。

    from fontTools.ttLib import TTFont
    # 这个是与上面的字体文件相对应的
    number_dict = {
        "period": ".",
        "zero": "0",
        "one": "1",
        "two": "2",
        "three": "3",
        "four": "4",
        "five": "5",
        "six": "6",
        "seven": "7",
        "eight": "8",
        "nine": "9"
    }
    # 将 woff 转化为 xml
    font_content = requests.get(font_url, headers={'User-Agent':'Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0'}).content
    
    with open('qidian.woff', 'wb') as f:
        f.write(font_content)
    
    font1 = TTFont('qidian.woff')
    font1.saveXML('qidian.xml')

    
    


    展开全文
  • 字体文件查看工具

    2018-06-04 15:37:14
    字体文件查看工具
  • 解决方法1、打开服务器...2、添加MIME类型 添加三条: 文件扩展名 MIME类型 .svgimage/svg+xml.woff application/x-font-woff.woff2application/x-font-woff 转载于:https://www.cnblogs.com/niyl/p/10297463.html...
  • 不知百度AI文字识别如何操作的可以参考python语言百度文字识别文档 直接贴出完整代码: 【注】下面代码的APP_ID、APP_KEY、SECRET_KEY的值都已修改,不可以直接的,请自己建立百度网络图片文字识别应用模型 ...
  • 原因:因为服务器IIS不认SVG,WOFF/WOFF2 这几个文件类型,只要在IIS上添加MIME 类型即可。​ IIS7 解决办法: http://www.cnblogs.com/hanwen/p/4212622.html​ IIS6解决办法:http://blog.brain1981.com/682.html ...
  • 开发的网站编辑文字等的是Ueditor编辑器,该编辑器本身没有编辑...在本地测试后一切正常,但是部署服务器后出现了404错误,显示字体文件.woff无法找到,但是文件是存在的 解决方法: 打开IIS管理器,选择MI...
  • from fontTools.ttLib import TTFont def get(): font = TTFont('./tyc-num.woff') font.saveXML('./woff4.xml') 将woff文件转化为xml后,再在pycharm中打开
  • woff 字体文件解析 字体结构说明

    万次阅读 2018-09-16 16:10:31
    woff文件样式查看 ... 在这个网址 上传woff文件 即可看到woff文件的展示效果 ...woff文件可以python的fontTools 打开 font = TTFont('xxx.woff') # 打开文件 font.saveXML('xxx/6329.xml'...
  • 使用 vue build 之后做网站请求,发现 woff 字体无法获取 ...打包之后,本地打开,显示资源加载失败 真实路径应该是 http://keliupc.mncats365.com/static/fonts/ionicons.05acfdb.woff 浏览器实际加载路径为: ...
  • 评分加密后看不出来,这里怀疑是字体加密了,我们在源码中搜索woff, ...打开网址下载.woff文件 下载之后我么需要想办法把它打开, 这里使用工具FontCreator,官网下载地址:https://www.high-logic.com/font...
  • 猫眼电影爬取(woff 字体文件解析)

    千次阅读 2018-12-12 16:30:49
    猫眼电影网站,中电影评分在网页显示正常但是检查网页源码会发现,评分所在位置是一串迷之字符串根本认不出,原因是使用了自定义字体代码 &lt;span class="...因此我们访问其中woff文件的地址...
  • woff字体文件转xml介绍

    2020-07-28 21:34:56
    初识woff字体文件 首先我们可以利用 fontTools 库把他保存为xml文件进行查看 #encoding: utf-8 from fontTools.ttLib import TTFont font = TTFont(r'C:\Users\...接下来我们打开xml文件 可以看到他里面主要包含有
  • css 引用woff字体文件跨域问题

    千次阅读 2019-09-02 14:34:30
    打开httpd.conf 配置文件 首先: 开启apache的mod_headers模块 LoadModule headers_module modules/mod_headers.so 其次 设置Access-Control-Allow-Origin <FilesMatch "\.(ttf|otf|eot|woff|woff2)$"> <...
  • 前言:这一期,是针对起点中文网的作品详情页爬取,这是对woff反爬的入门,相对美团之类的字体反爬容易一些。短短的几十行代码,逻辑清晰!让你欲罢不能的关注我!有人就要说了,我已经会爬取...2)woff文件一般都在cs
  • 1.打开FontCreator,将ttf文件拖到FontCreator打开。 2.菜单项选择Font=》Properties,打开Font Properties弹窗。 3.在弹窗里面看到有几个子标签页,其中Identification标签页里面的 Font Family即为字体的英文名,...
  • 爬取数据不难,恶心的是各网站的各种反爬技术,替换字体,精灵图,数据加密等等,猫眼就是用到...作用是把woff字体文件转成xml文件woff字体文件在猫眼页面css哪里 html页面位置 @font-face {  font-family: ...
  • 通过 CSS3 @font-face,前端开发人员可以使用他们喜欢的任意字体,如Font Awesome fa字体,Glyphicons字体图标等,甚至可以使用自定义字体文件。本文还讲述了text-shadow 文本阴影、overflow:ellipsis 文本超出省略...
  • 爬虫woff字体反爬破解

    2020-10-28 18:17:33
    好久没写爬虫了,最近发现很多网站都出现了woff字体反爬。百度找了一下,发现都要钱,只好默默说一声fuck ...找到woff字体文件,然后转换成xml文件,转换代码是` #encoding: utf-8 from fontTools.ttLib import TTFo
  • 上图的这个报错,我原先使用的是官方默认给的引入方式,后来将iconfont.woff2装成了base64的格式,打开依然是报这个错误。 解决方法 直接去iconfont官网去生成对应的在线地址。就可以解决以上问题了。 ...
  • 文章目录vue+ elementUI 打包发布到服务器后,element-icons.woff文件404js文件404问题element-icons.woff 文件 404参考链接 vue+ elementUI 打包发布到服务器后,element-icons.woff文件404 js文件404问题 原因:...
  • 引入.woff文件,编写css文件 不想写css文件的,直接看文章末尾 使用vue-cli的小伙伴,如果和我一样不会loader配置的话,直接在主文件(index.html)中插入style标签 css文件/syle标签中 @charset "UTF-8
  • 大众点评字WOFF字体解密

    千次阅读 2019-08-08 11:02:32
    接下来我们将woff文件下载下来进通过FontCreator软件进行查看结果图4所示, 所有页面的woff文件的内容都是一样的 但是上边Unicode码不一样, 而且对数字和文字引用了不同的字体库。     我们python将...
  • woff字体反爬实战,10分钟就能学会(ttf字体同理)

    万次阅读 多人点赞 2019-08-26 23:21:07
    声明:本帖子仅是用于学习用途,请勿与用于而已破坏别人网站,本人不承担法律责任。 来继续学爬虫呀!...去woff字体文件里面查找真正的数字,讲到底就是一个映射关系/查找字典。如html源码是123,去w...
  • 【解决】VSCode 打开文件中文乱码

    千次阅读 2019-12-05 16:03:53
    这是因为编码格式不同造成的,VSCode 有自动适应文件编码的功能,需要手动开启 开启方法如下 Files(文件) > Preferences(首选项) > Settings(设置) 在搜索栏输入 Files:Auto Guess Encoding 在该选项...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 5,735
精华内容 2,294
关键字:

woff文件用什么打开