zhangjinxuan 发表于 2023-3-3 20:17:57

求一个iconv的源代码

本帖最后由 zhangjinxuan 于 2023-6-23 09:03 编辑

为了使用 extc++,感谢

dolly_yos2 发表于 2023-3-3 20:32:55

是哪个 extc++?是这个 iconv 吗?
https://www.gnu.org/software/libiconv/

zhangjinxuan 发表于 2023-3-3 21:19:08

dolly_yos2 发表于 2023-3-3 20:32
是哪个 extc++?是这个 iconv 吗?
https://www.gnu.org/software/libiconv/

C++有一个“黑科技”库:bits/extc++.h,比 stdc++.h 有很多更加有趣味

dolly_yos2 发表于 2023-3-3 22:01:45

zhangjinxuan 发表于 2023-3-3 21:19
C++有一个“黑科技”库:bits/extc++.h,比 stdc++.h 有很多更加有趣味

哦 这个 没记错的话是 GCC 的,不是 C++ 标准库
所以是哪个 iconv?

zhangjinxuan 发表于 2023-3-4 07:45:18

dolly_yos2 发表于 2023-3-3 22:01
哦 这个 没记错的话是 GCC 的,不是 C++ 标准库
所以是哪个 iconv?

算了,ext不用也罢{:10_306:}

sfqxx 发表于 2023-3-4 10:38:28

{:10_256:}func (ic *Iconv) convert(input []byte, out io.Writer, outBuf []byte) (bytesConverted int, err error) {
    inputLen := len(input)
    if inputLen == 0 {
      return
    }

    outputLen := len(outBuf)
    if outputLen == 0 {
      outputLen = inputLen
      outBuf = make([]byte, outputLen)
    }

    outputPtr := &outBuf
    outputPtrPtr := (**C.char)(unsafe.Pointer(&outputPtr))
    outputBytesLeft := C.size_t(outputLen)

    inputPtr := &input
    inputPtrPtr := (**C.char)(unsafe.Pointer(&inputPtr))
    inputBytesLeft := C.size_t(inputLen)

    _, err = C.iconv(ic.pIconv, inputPtrPtr, &inputBytesLeft, outputPtrPtr, &outputBytesLeft)
    bytesConverted = inputLen - int(inputBytesLeft)
    if int(outputBytesLeft) < outputLen {
      out.Write(outBuf[:outputLen-int(outputBytesLeft)])
    }
    return
}

zhangjinxuan 发表于 2023-3-4 10:56:57

sfqxx 发表于 2023-3-4 10:38


iconv 库的源代码,这时瓜娃码?

sfqxx 发表于 2023-3-5 11:26:24

zhangjinxuan 发表于 2023-3-4 10:56
iconv 库的源代码,这时瓜娃码?

瓜娃是啥

sfqxx 发表于 2023-3-5 11:27:24

看看这个→https://dude6.com/q/a/1410735.html

zhangjinxuan 发表于 2023-3-5 15:38:52

sfqxx 发表于 2023-3-5 11:26
瓜娃是啥

java?

zhangjinxuan 发表于 2023-3-5 15:39:25

sfqxx 发表于 2023-3-5 11:27
看看这个→https://dude6.com/q/a/1410735.html

付费{:10_250:}

sfqxx 发表于 2023-3-5 15:47:43

zhangjinxuan 发表于 2023-3-5 15:39
付费

呃……

dolly_yos2 发表于 2023-3-5 16:47:13

zhangjinxuan 发表于 2023-3-5 15:39
付费

兄啊,所以我之前发的链接是不行还是不对?

zhangjinxuan 发表于 2023-3-5 17:01:02

本帖最后由 zhangjinxuan 于 2023-3-5 17:02 编辑

dolly_yos2 发表于 2023-3-5 16:47
兄啊,所以我之前发的链接是不行还是不对?

看不懂(

人造人 发表于 2023-3-5 19:40:03

zhangjinxuan 发表于 2023-3-5 17:01
看不懂(

sh-5.1$ pacman -Ss libiconv
community/libiconv 1.17-1
    GNU charset conversion library
archlinuxcn/julia-git-libiconv_jll-git 1.16.1+2-1
    Libiconv_jll.jl
sh-5.1$

zhangjinxuan 发表于 2023-3-5 19:45:43

人造人 发表于 2023-3-5 19:40


可.我是windows啊

人造人 发表于 2023-3-5 20:01:54

zhangjinxuan 发表于 2023-3-5 19:45
可.我是windows啊

简单,换linux就好
所以说,linux是一个程序员友好的系统,需要的软件就是一条命令的事,windows的话,你就用鼠标在百度上面一个一个的找吧
在windows上那就规规矩矩的,windows给你准备了什么你就用什么,没有给你准备,那就不用,在windows上折腾这些稀奇古怪,花里胡哨的东西,那你只能是自讨苦吃
综上所述,换linux

人造人 发表于 2023-3-5 20:07:43

借花献佛
https://www.gnu.org/software/libiconv/
https://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.17.tar.gz

zhangjinxuan 发表于 2023-3-5 20:11:45

人造人 发表于 2023-3-5 20:07
借花献佛
https://www.gnu.org/software/libiconv/
https://ftp.gnu.org/pub/gnu/libiconv/libiconv-1.1 ...

行吧,反正windows也用不着extc++

人造人 发表于 2023-3-5 20:11:58

sh-5.1$ ls libiconv-1.17.tar.gz
libiconv-1.17.tar.gz
sh-5.1$ tar -xf libiconv-1.17.tar.gz
sh-5.1$ cd libiconv-1.17
sh-5.1$ ls
ABOUT-NLS    ChangeLog           INSTALL.genericNEWS    aclocal.m4       configure.acinclude           man        srclib        windows
AUTHORS      DEPENDENCIESINSTALL.windowsNOTES   build-aux       doc             lib           os2        srcm4        woe32dll
COPYING      DESIGN           Makefile.devel   READMEconfig.h.inextras      libcharsetpo        tests
COPYING.LIBHACKING           Makefile.in          THANKSconfigure       gnulib-localm4           src        tools
sh-5.1$ mkdir build
sh-5.1$ cd build
sh-5.1$ ../configure
checking for a BSD-compatible install... /usr/bin/install -c
checking whether build environment is sane... yes
checking for a race-free mkdir -p... /usr/bin/mkdir -p
checking for gawk... gawk
checking whether make sets $(MAKE)... yes
checking whether make supports nested variables... yes
checking whether make sets $(MAKE)... (cached) yes
checking for gcc... gcc
...
config.status: creating include/localcharset.h
config.status: creating include/localcharset.h.inst
config.status: creating config.h
config.status: executing libtool commands
sh-5.1$

sh-5.1$ ls
Makefileconfig.hconfig.log        config.statusinclude        liblibcharsetlibtoolmanposrc        srclib        stamp-h1tests
sh-5.1$ make -j 4
builddir="`pwd`"; cd libcharset && make all && make install-lib libdir="$builddir/lib" includedir="$builddir/lib"
make: Entering directory '/tmp/libiconv-1.17/build/libcharset'
cd lib && make all
make: Entering directory '/tmp/libiconv-1.17/build/libcharset/lib'
...
make: Nothing to be done for 'all'.
make: Leaving directory '/tmp/libiconv-1.17/build/tests'
sh-5.1$
sh-5.1$ ls
Makefileconfig.hconfig.log        config.statusinclude        liblibcharsetlibtoolmanposrc        srclib        stamp-h1tests
sh-5.1$
页: [1]
查看完整版本: 求一个iconv的源代码