我需要一个库来编码cp1251中的数据,以便与使用它的api一起工作。
为此,我发现只有2个库。 encoding lib和text-icu lib。第一个看起来更好,因为它可以静态链接到我的程序。
但我甚至无法编译它!我正在使用堆栈,所以我在我的.cabal文件中添加encoding
到build-deps,然后堆栈求解器更新我的堆栈yaml文件和extra-deps中的encoding-0.8。
但在运行stack build
后我出错了
Data/Encoding/Preprocessor/XMLMapping.hs:11:8:
Could not find module ‘Text.XML.HaXml.Types’
Use -v to see a list of the files searched for.
Data/Encoding/Preprocessor/XMLMappingBuilder.hs:15:8:
Could not find module ‘Text.XML.HaXml.OneOfN’
Use -v to see a list of the files searched for.
Data/Encoding/Preprocessor/XMLMappingBuilder.hs:16:8:
Could not find module ‘Text.XML.HaXml.XmlContent’
Use -v to see a list of the files searched for.
我尝试使用旧版本的HaXml和编码,但是遇到了同样的错误。
例如,我在阅读changelog https://hackage.haskell.org/package/encoding-0.7.0.2/changelog之后尝试将encoding-0.6.7
与HaXml-1.22.3
一起使用,但却遇到了同样的错误。
在hackage文档中,所有这些编码无法导入的模块都存在。
如何编译此lib?我在linux mint x64上使用堆栈1.0.4,lts-5.6和ghc-7.10.3
stack.yaml
flags: {}
extra-package-dbs: []
packages:
- '.'
extra-deps:
- encoding-0.8
- text-1.2.2.0
resolver: lts-5.6
小集团:
name: hapidry
version: 0.1.1.0
synopsis: Initial project template from stack
description: Please see README.md
homepage: -
license: GPL-2
license-file: LICENSE
author: -
maintainer: -
copyright: GPL
category: network
build-type: Simple
-- extra-source-files:
cabal-version: >=1.10
library
hs-source-dirs: src
exposed-modules: Lib
build-depends: base >= 4.7 && < 5
default-language: Haskell2010
executable hapidry-exe
hs-source-dirs: app
main-is: Main.hs
ghc-options: -threaded -rtsopts -with-rtsopts=-N
build-depends: base
, hapidry
, wreq
, ConfigFile
, aeson
, lens
, cryptohash
, binary
, mtl
, base16-bytestring
, bytestring
, containers
, text
, lens-aeson
, data-default
, optparse-applicative
, encoding
default-language: Haskell2010
test-suite hapidry-test
type: exitcode-stdio-1.0
hs-source-dirs: test
main-is: Spec.hs
build-depends: base
, hapidry
ghc-options: -threaded -rtsopts -with-rtsopts=-N
default-language: Haskell2010
source-repository head
type: git
location: -
答案 0 :(得分:0)
最后,我编写了自己的编码功能。它似乎是可接受的解决方法。另一个单字节编码的函数可以用同样的方式实现。
CWnd *